Tank Game: Не могу найти правильную формулу для прицеливания противника - PullRequest
1 голос
/ 16 мая 2011

Недавно я смотрел Flash-видео: «Lynda.com - проекты ActionScript 3.0: разработка игр» с Тоддом Перкинсом.

Последний урок был «Создание Flash Tank Game». Я последовал и создал ту же самую игру, которая была описана в уроке.

Но в примере урока у вражеского танка не было спускающегося ИИ. Враг двигался и стрелял случайно, и играть в эту игру было не очень весело.

Я решил сделать ИИ более совершенным. Мне удалось заставить противника изменить направление движения, если его ударил игрок.

Если враг успешно ударил игрока, он останавливается и продолжает стрелять в игрока с тем же углом и той же позицией, пока он не пропустил или не получил удар от игрока.

Проблема в том, что формула для вычисления правильного угла пушки не является правильной. Враг вроде стреляет правильно, но он все еще сильно скучает.

Итак, вот формула, которую я использовал:

enemyTargetRotation=Math.asin(Math.abs(enemy_mc.y - player_mc.y)/(Math.sqrt(Math.pow(player_mc.x - enemy_mc.x, 2)+ Math.pow((enemyWall_mc.height - stage.height),2)))/180*Math.PI);
      enemyTargetRotation*=10000;
      enemyTargetRotation+=180;

1 Ответ

1 голос
/ 16 мая 2011

Почему не просто Math.atan2(y2 - y1, x2 - x1) / Math.PI * 180? Он должен давать угол стрельбы в градусах с учетом координат x1, y1 танка и координат x2, y2 цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...