让射弹从头开始前往游戏中的目的地



我意识到这个问题已经以不同的方式回答了,我目前的解决方案是基于以前的答案,但它对我不太有用,我不知道为什么。

            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);

以下是实际结果:

子弹朝(几乎正确的)方向移动的动画 GIF

我的数学有问题吗?

它最终成为画布的边框偏移了目标点,所以我对其进行了补偿并得到了接近准确行为的东西。

最新更新