Стрельба у танка.
| |
Darkbasic | Дата: Пятница, 27 Июня 2014, 05:48 | Сообщение # 1 |
Revival Deiphi
Сейчас нет на сайте
| Здравствуйте. Наверно вопрос тупой,но как сделать чтобы танк стрелял по одному снаряду с перезарядкой в N секунд? Не могу разобраться. И как сделать чтобы эффект дыма поворачивался вместе со спрайтом?
Сообщение отредактировал Darkbasic - Пятница, 27 Июня 2014, 05:55 |
|
| |
XDominator | Дата: Пятница, 27 Июня 2014, 09:47 | Сообщение # 2 |
постоянный участник
Сейчас нет на сайте
| Если делаешь через стандартные эффекты дым, то поворачивающимся ты его не сделаешь. Да и не должен он вообще то поворачиваться)
Стрельба в гм, как правило, организована примерно так:
Код //Create shoot_enabled = true;//Контролирующая переменная(Триггер) delay = 60;// - задержка между выстрелами bspeed = 10;//Скорость полета пули.
//Global left mouse if shoot_enabled { shoot_enabled = false;//Закрываем условие выстрела alarm[0] = delay;//Устанавливаем таймер, который снова раскроет условие выстрела bullet = instance_create(x, y, o_bullet)// Создаем объект с именем o_bullet и сохраняем ссылку на него в bullet bullet.speed = bspeed;//Ставим скорость пули bullet.direction = point_direction(x, y, mouse_x, mouse_y);//Ставим направление(Выстрел в точку курсора) }
//Alarm 0 shoot_enabled = true;//Раскрываем условие.
Ghaarp
The soul lighter(Android, logic)
Zzzzombie RAGE!!!(For android)
Сообщение отредактировал XDominator - Пятница, 27 Июня 2014, 09:48 |
|
| |
lisiyrak | Дата: Пятница, 27 Июня 2014, 09:49 | Сообщение # 3 |
Hero of bacon
Сейчас нет на сайте
| create
step
Код if mouse_check_button_pressed(mb_left) { if reload == 0 { shoot() // скрипт выстрела
instance_create(x+lengthdir_x(len,image_angle), y+lengthdir_y(len,image_angle), obj_smoke) // создание дыма на конце дула. // len - длина дула, image_angle - поворот дула
reload = 1 alarm[0] = room_speed * N // N - количество секунд, требуемое для перезарядки } }
alarm0
Код reload = 0 // перезарядка закончена
KEKW
|
|
| |
Darkbasic | Дата: Пятница, 27 Июня 2014, 16:57 | Сообщение # 4 |
Revival Deiphi
Сейчас нет на сайте
| lisiyrak, Код instance_create(x+lengthdir_x(len,image_angle), y+lengthdir_y(len,image_angle), obj_smoke) // создание дыма на конце дула. // len - длина дула, image_angle - поворот дула при таком коде вот что выходит. Дым не "вертится" за дулом. видео П.С. на графу не смотрите, техническая
Сообщение отредактировал Darkbasic - Пятница, 27 Июня 2014, 17:03 |
|
| |
lisiyrak | Дата: Пятница, 27 Июня 2014, 17:20 | Сообщение # 5 |
Hero of bacon
Сейчас нет на сайте
| Darkbasic, видео не запустилось. Дым должен появляться на конце дула, кинь скриншот с тем, что у тебя получается.
KEKW
|
|
| |
Darkbasic | Дата: Пятница, 27 Июня 2014, 17:36 | Сообщение # 6 |
Revival Deiphi
Сейчас нет на сайте
| вот
|
|
| |
lisiyrak | Дата: Пятница, 27 Июня 2014, 17:44 | Сообщение # 7 |
Hero of bacon
Сейчас нет на сайте
| Darkbasic, проверь, чтобы вторым аргументом в функциях lengthdir_x(len,image_angle) и lengthdir_y(len,image_angle) был точно image_angle башни.
KEKW
Сообщение отредактировал lisiyrak - Пятница, 27 Июня 2014, 17:48 |
|
| |
Darkbasic | Дата: Пятница, 27 Июня 2014, 17:48 | Сообщение # 8 |
Revival Deiphi
Сейчас нет на сайте
| Код instance_create(x+lengthdir_x(128,image_angle=point_direction(x,y,bash.x,bash.y)), y+lengthdir_y(0,image_angle=point_direction(x,y,bash.x,bash.y)), smoke) вот этот код. bash-объект башни.
|
|
| |
lisiyrak | Дата: Пятница, 27 Июня 2014, 17:52 | Сообщение # 9 |
Hero of bacon
Сейчас нет на сайте
| Darkbasic, а сам код находиться в объекте корпуса?
KEKW
|
|
| |
Darkbasic | Дата: Пятница, 27 Июня 2014, 17:54 | Сообщение # 10 |
Revival Deiphi
Сейчас нет на сайте
| lisiyrak, нет в объекте башни.
|
|
| |
lisiyrak | Дата: Пятница, 27 Июня 2014, 17:55 | Сообщение # 11 |
Hero of bacon
Сейчас нет на сайте
| Darkbasic, башня отрисовывается стандартно или с помощью кода? Если второе, то кинь код отрисовки.
KEKW
|
|
| |
Darkbasic | Дата: Пятница, 27 Июня 2014, 18:00 | Сообщение # 12 |
Revival Deiphi
Сейчас нет на сайте
| Код x=tank.x y=tank.y image_angle=point_direction(x,y,mouse_x,mouse_y) вот и весь код То есть я ставлю объект башни на карту а он уже с помощью этого кода "липнет к танку".
Сообщение отредактировал Darkbasic - Пятница, 27 Июня 2014, 18:01 |
|
| |
lisiyrak | Дата: Пятница, 27 Июня 2014, 18:03 | Сообщение # 13 |
Hero of bacon
Сейчас нет на сайте
| Darkbasic, должно работать.
Код instance_create(x+lengthdir_x(128,image_angle), y+lengthdir_y(128,image_angle), smoke)
KEKW
|
|
| |
Darkbasic | Дата: Пятница, 27 Июня 2014, 18:05 | Сообщение # 14 |
Revival Deiphi
Сейчас нет на сайте
| lisiyrak, спасибо, работает. Но вопрос еще. Как сделать чтобы анимация дыма как только проиграется убиралась?.
Сообщение отредактировал Darkbasic - Пятница, 27 Июня 2014, 18:06 |
|
| |
lisiyrak | Дата: Пятница, 27 Июня 2014, 18:15 | Сообщение # 15 |
Hero of bacon
Сейчас нет на сайте
| Darkbasic, в events выбери other -> Animation end. В этом событии напиши:
KEKW
|
|
| |
Darkbasic | Дата: Пятница, 27 Июня 2014, 18:21 | Сообщение # 16 |
Revival Deiphi
Сейчас нет на сайте
| lisiyrak, работает генерация дыма, но он генерируется рандомно. Может так А может так В общем не ровно у дула.
Сообщение отредактировал Darkbasic - Пятница, 27 Июня 2014, 18:26 |
|
| |
Minskii | Дата: Понедельник, 16 Мая 2016, 15:43 | Сообщение # 17 |
участник
Сейчас нет на сайте
| Ребят,тема может уже и прикрылась.Но есть такой вопрос.Как сделать что бы пуля летела из дула,и как сделать что бы она летела парралельно дулу?
Один терранозавр - это 1024 гиганозавра, или 1048576 меганозавров. Java/Kotlin, C#, C++. Android разработчик. Инженер-программист программного обеспечения информационной безопасности мобильных систем.
|
|
| |
ShortKedr | Дата: Понедельник, 16 Мая 2016, 17:29 | Сообщение # 18 |
Renword Studio
Сейчас нет на сайте
| Minskii, первый вариант авто HotSpot на спрайте, но вроде он один(центр спрайта). Второй вариант - синусы, косинусы... Константой задаём позицию (относительно центра картинки) откуда пуля должна лететь при нормальной картинке без поворотов. В зависимости от поворота, при помощи синусов, косинусов расчитываем точку после поворота --> Создаём в точке пулю, запускаем в направлении дула)
Извиняюсь за неосведомлённость по поводу нововведений в GM, так как уже давно в нём не работаю) Вроде относительно этого ничего не поменялось)
Сообщение отредактировал ShortKedr - Понедельник, 16 Мая 2016, 17:30 |
|
| |
Minskii | Дата: Понедельник, 16 Мая 2016, 20:11 | Сообщение # 19 |
участник
Сейчас нет на сайте
| Цитата ShortKedr ( ) Minskii, первый вариант авто HotSpot на спрайте, но вроде он один(центр спрайта). Второй вариант - синусы, косинусы.. А у меня повороты через direction+ direction-,так мне надо на все углы(с десятыми частями)точки делать?
Один терранозавр - это 1024 гиганозавра, или 1048576 меганозавров. Java/Kotlin, C#, C++. Android разработчик. Инженер-программист программного обеспечения информационной безопасности мобильных систем.
|
|
| |
|