Пятница, 29 Марта 2024, 10:24

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Вращение объекта...
Вращение объекта...
AcTiViSioNДата: Понедельник, 03 Февраля 2014, 15:44 | Сообщение # 1
был не раз
Сейчас нет на сайте
Мне нужно вращать пушку на танке, но не более -90 \ +90 градусов от его центра (типа ПТ-САУ в WoT), то есть при повороте танка на 0 градусов, пушка встанет в любой градус но не больше 90 и не меньше 270. Собственно я не пойму как это сделать, получается криво из-за перехода с 359 на 0 градус. Может где-нибудь есть готовый вариант?


Сообщение отредактировал AcTiViSioN - Понедельник, 03 Февраля 2014, 16:02
laggertДата: Понедельник, 03 Февраля 2014, 16:52 | Сообщение # 2
почетный гость
Сейчас нет на сайте
Код из моей игры(тоже танчики):
Код

image_angle = direction
direction = (image_angle+((image_angle-point_direction(x,y,mouse_x,mouse_y)+360)mod 360>2)*((2*sign((image_angle-point_direction(x,y,mouse_x,mouse_y)+360)mod 360-180)))+360)mod 360

if direction>90 && direction<180
{
direction=90
}

if direction<270 && direction>90
{
direction=270
}



Я здесь, чтобы распространять ЛАГИ!!!
AcTiViSioNДата: Понедельник, 03 Февраля 2014, 17:26 | Сообщение # 3
был не раз
Сейчас нет на сайте
Не совсем понял как это должно работать с двумя объектами (танк и его башня), но пошаманив немножко с image_angle добился почти нужного результата, но все равно не то. Мне кажется дело в "if direction>90 && direction<180 ... " но я не знаю как это устроено в вашей игре.

Сообщение отредактировал AcTiViSioN - Понедельник, 03 Февраля 2014, 18:08
hero564Дата: Понедельник, 03 Февраля 2014, 19:37 | Сообщение # 4
Made in Ukraine
Сейчас нет на сайте
AcTiViSioN,
obj_tank - обьект танка
obj_head - обьект башни
в степе obj_head
Код
if direction =360{direction=0}
if keyboard_check_pressed(vk_left){         //поворот влево
      if direction<obj_tank.direction +90{
          direction+=12
      }
}   
if keyboard_check_pressed(vk_right){         //поворот влево
      if direction>obj_tank.direction -90{
          direction-=12
      }
}


Сообщение отредактировал hero564 - Понедельник, 03 Февраля 2014, 19:38
AcTiViSioNДата: Понедельник, 03 Февраля 2014, 19:50 | Сообщение # 5
был не раз
Сейчас нет на сайте
Цитата hero564 ()
obj_tank - обьект танка
obj_head - обьект башни
в степе obj_head

Это тоже не то, у меня проблема посложнее. Двигается только тело танка, а башня смотрит точно в цель. Когда тело повернется больше 90 градусов, башня потеряет цель из виду и перестанет двигаться, а через некоторое время снова подхватит цель когда танк развернется по кругу.


Сообщение отредактировал AcTiViSioN - Понедельник, 03 Февраля 2014, 19:50
laggertДата: Вторник, 04 Февраля 2014, 16:55 | Сообщение # 6
почетный гость
Сейчас нет на сайте
body-тело танка
Код
image_angle = direction  
direction = (image_angle+((image_angle-point_direction(x,y,mouse_x,mouse_y)+360)mod 360>2)*((2*sign((image_angle-point_direction(x,y,mouse_x,mouse_y)+360)mod 360-180)))+360)mod 360  

if direction>90+body.direction && direction<180+body.direction
{  
direction=90+body.direction
}  

if direction<270+body.direction && direction>90+body.direction
{  
direction=270+body.direction  
}



Я здесь, чтобы распространять ЛАГИ!!!
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Вращение объекта...
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг