大家好,我正在开发一个游戏,有两个点,一个是A,一个是B,A点是大炮,另一个是用户有触摸的点。
我该怎么做才能得到这条线,说无限从A点开始继续子弹?
我的数学技能有点稀缺:/
有人可以推荐一种使用 libgdx / java 的方法吗?
大家好,我正在开发一个游戏,有两个点,一个是A,一个是B,A点是大炮,另一个是用户有触摸的点。
我该怎么做才能得到这条线,说无限从A点开始继续子弹?
我的数学技能有点稀缺:/
有人可以推荐一种使用 libgdx / java 的方法吗?
您需要 B 的向量位置减去 A 的向量位置,这将给出从 A 指向 B 的向量。尝试通读一下,如果您要制作游戏,向量的基本知识是必不可少的
要表示状态,您可以使用以下内容。
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
到舞台并玩得开心。
希望这可以帮助。
祝你好运。