用libgdx通过向量推导出轨迹?

时间:2015-01-21 09:30:35

标签: java android libgdx coordinates cartesian-coordinates

enter image description here

大家好, 我正在开发一个游戏,其中两个点,一个是A,另一个是B,A点是大炮,另一个是用户触摸的点。

如何获得该线,从A点开始继续说明子弹?

我的数学技能有点稀缺:/

有人可以推荐使用libgdx / java的方法吗?

2 个答案:

答案 0 :(得分:0)

你需要B的向量位置减去A的向量位置,这将给出从A到B的向量。尝试阅读this,如果你要去的话,基本的向量知识是不可或缺的制作游戏

答案 1 :(得分:0)

要表示状态,您可以使用以下内容。

public class Bullet extends Actor {
    private Vector2 position;
    private Vector2 velocity;

    public Bullet(Vector2 position, Vector2 velocity) {
        this.position = position;
        this.velocity = velocity;
    }

    @Override
    public void act(float delta) {
        super.act(delta);
        // Since newPosition = oldPosition + velocity * time elapsed
        this.position.mulAdd(this.velocity, delta / 1000);
    }

    // Override draw method to handle rendering.
}

现在,您可以在每次触摸活动时(或随时)初始化新的Bullet

Bullet createBullet(Vector2 canonPosition, Vector2 touchPosition) {
    return new Bullet(canonPosition.cpy(), //Initial position of bullet.
                      touchPosition.sub(canonPosition).nor()); // Velocity
}

现在只需将Bullet添加到舞台并享受乐趣。

希望这有帮助。
祝你好运。