我目前正在编程一个塔防,导弹往往会错过敌人,而不是像他们在桌面塔防中那样跟着/击中他们。这是因为他们在没有给敌人任何领先的情况下射击,所以当敌人到达敌人位置时,敌人已经离开3-5个像素。我查了一下如何解决这个问题,发现我需要使用向量数学来解决问题。例如,这个网站http://www.helixsoft.nl/articles/circle/sincos.htm有一些如何编写自导导弹的代码,但我不确定这是否是我需要解决我的问题的那种数学。如何正确编程导弹寻路?
看起来像是在stackoverflow上的帖子推荐一些叫做“命令指导”的东西,但不知道如何与2D游戏一起工作。
所以目前,我很困惑,该怎么做。任何方向/指导将不胜感激。
我不明白该函数如何增加导弹的x和y位置。 x + =长度* fcos(角度)和y + =长度* fsin(角度)如何增加x位置和y位置?对我来说没有多大意义。基本上,我需要导弹位置来增加每个刻度,而我只是不确定长度* fsin(角度)= y的移动距离和长度* fcost(角度)= x的移动距离。 – GayLord 2013-03-05 22:54:18
我真的很推荐阅读整篇文章和实例 - 这些问题和解决方案在游戏开发中一次又一次地出现。 – 2013-03-05 23:20:29
简而言之,cos(角度)返回敌人在x方向上的距离,sin(角度)返回敌人在y方向上的距离。 cos(角度)和sin(角度)都返回范围[0,1]中的值,因此需要乘以速度。 – 2013-03-05 23:22:23