我意识到这个问题已经以不同的方式得到了解答,我目前的解决方案是基于之前的答案,但它对我来说并不适用,我无法弄清楚原因。
float targetX = bullet.getTarget().x;
float targetY = bullet.getTarget().y;
float bulletX = bullet.getLocation().x;
float bulletY = bullet.getLocation().y;
// Version of setX(getX() + (speed * Math.cos(direction)));
float deltaX = targetX - bulletX;
float deltaY = targetY - bulletY;
float direction = (float) Math.atan2(deltaY, deltaX);
float x = bulletX + BULLET_SPEED * (float) Math.cos(direction);
float y = bulletY + BULLET_SPEED * (float) Math.sin(direction);
bullet.setLocation(x, y);
以下是行动结果:
Animated Gif Of The Bullet Going The (Almost Right) Direction
我的数学有问题吗?
答案 0 :(得分:0)
它最终成为了抵消目的地点的画布边界,因此我对其进行了补偿,并得到了接近准确行为的东西。