使射弹从头开始进入游戏目的地

时间:2016-04-25 20:41:09

标签: android math vector projectile

我意识到这个问题已经以不同的方式得到了解答,我目前的解决方案是基于之前的答案,但它对我来说并不适用,我无法弄清楚原因。

            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

我的数学有问题吗?

1 个答案:

答案 0 :(得分:0)

它最终成为了抵消目的地点的画布边界,因此我对其进行了补偿,并得到了接近准确行为的东西。