【发布时间】:2018-09-15 11:02:58
【问题描述】:
我有一个游戏,其中有一个Player 和一些enemies。这些敌人,就像玩家本身一样,可以射击bullets。但是子弹的angle 并没有像预期的那样改变;新创建的子弹应该找到自己和玩家之间的角度,然后朝那个方向前进 - 这必须在 360° 中完成。
我关注了this answer,但我认为我做错了什么。
这是处理项目符号 X 和 Y 的代码部分:
angle = Math.atan2(Game.getPlayerY(), Game.getPlayerX()) - Math.atan2(getY(), getX());
if (angle < 0)
angle += 2 * Math.PI;
setX((getX()+(float)(Math.sin(angle)))-Config.BulletSpeed);
setY((getY()+(float)(Math.cos(angle)))-Config.BulletSpeed);
如何让Bullets 进入某个角度?
【问题讨论】:
-
我猜你的意思是 cos 用于其中一组(你对两个都使用 sin)。
-
我改成了 sin & cos 但这并没有帮助,它只是以对角线的方式进行,如上图所示
-
其中一个应该使用cos,一个应该使用sin。但我认为你也没有正确计算角度,它应该更像
atan2(y2-y1, x2-x1)。 -
运气不好
-
如需尽快获得更好的帮助,请发帖minimal reproducible example 或Short, Self Contained, Correct Example。