Найти в Дзене
Моя игра

Создаю игру, бомбардировщики и самонаводящиеся ракеты

Приветствую всех читателей!
Наконец то закончил работу над бомбардировщиками для второго уровня, сложность была не в их создании, а именно в их орудиях.
вот такие бомбардировщики
По задумке, они должны бомбить, и стрелять ракетами.

Приветствую всех читателей!

Наконец то закончил работу над бомбардировщиками для второго уровня, сложность была не в их создании, а именно в их орудиях.

вот такие бомбардировщики
вот такие бомбардировщики

По задумке, они должны бомбить, и стрелять ракетами.

С бомбометанием проблем не возникло, потому что в ковровой бомбардировке, достаточно лететь прямо и сбрасывать позади бомбы. То есть уменьшаю размер картинки бомбы, и немного смещаю ее к центру по координатной оси (х,у) это делается для того что бы бомба падала ровно, а не уходила в сторону при падении, вот кстати бомба:

бомба сильно увеличена
бомба сильно увеличена

Добавил так же маленькие взрывы, что бы получалось что бомба не просто падала, а еще и взрывалась на земле. В общем как я думаю получилось довольно не плохо.

Занялся ракетами:

ракета бомбардировщика
ракета бомбардировщика

Просто пускать ракеты в наш вертолет, мне показалось скучным, поэтому решил заняться самонаведением ракет на нас, в целом тоже ничего сложного если Х вертолета меньше Х ракеты то Х ракете присваиваем значение Х-1, и так же с У.

Но вот какая загвоздка вышла... ракета-то в цель летит, но как-то боком, а иногда и вообще задом наперед... Сперва хотел сделать поворот ракеты по координатам, если Х и У вертолета больше Х и У ракеты то угол поворота 45, ну и так далее, сделал тестирую, вроде бы ракета поворачивается, но так при этом дергается... как будто ее молотком поворачивают... в общем опять не то... так ракеты не летают...

Пришлось прибегнуть к старой доброй алгебре, а именно к косинусам и синусам ))) подключаю библиотеку math и начинаю вспоминать, не без помощи интернета, как вычислить угол наклона между 2-мя точками по координатам. Добавил формулу, запускаю и вижу какие-то чудеса... ракета летит, но при этом вращается вокруг своей оси как винт вертолета...

И почему так? потому что функция дельфи arccos() считает не в градусах, а в радианах! Прежде чем передавать угол на изображение его нужно перевести в градусы с помощью функции RadToDeg().

Тестирую и опять не то... ракета поворачивается, но все время то боком, то задом... что опять не так сделал, долго думал чуть ли не весь день... Жена подсказала ))) чего говорит они у тебя задом наперед летают? А ведь точно! задом наперед, координатная плоскость ведь в компьютере задом наперед!, перевожу все в обратную проекцию и вуаля все как надо!

атака базы
атака базы

Вот такие у меня были творческие муки ))) и как обычно видео того что вышло:

Спасибо за прочтение, подписывайтесь, буду писать что делаю и показывать что получается.