闪光坦克游戏:无法找出敌人瞄准的正确公式

时间:2011-05-16 12:10:31

标签: flash

最近我一直在和Todd Perkins一起观看Flash视频:“Lynda.com - ActionScript 3.0项目:游戏开发”。

上一课是“创建一个Flash坦克游戏”。 我跟着并创建了与本课程中描述的完全相同的游戏。 但是在课程的例子中,敌人坦克没有下降AI。敌人随意移动和射击,玩这个游戏似乎并不是很有趣。

我决定让AI更加强化。 如果被玩家击中,我已设法让敌人改变运动方向。 如果敌人成功击中了玩家,它会停止并继续以相同的枪角和相同的位置射击玩家,直到他错过或被玩家击中。

问题是计算右枪角的公式不够正确。敌人有点射击,但他仍然错过了很多。

所以,这是我用过的公式:

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;

以下是源代码等的链接http://www.megaupload.com/?d=CH48PEML

有人可以帮助我吗?

P.S。这个游戏只是为了娱乐和自我教育,我不打算出售它或其他东西:)

1 个答案:

答案 0 :(得分:1)

为什么不只是Math.atan2(y2 - y1, x2 - x1) / Math.PI * 180?给定坦克的x1,y1坐标和目标的x2,y2坐标,给出射程角度。