ある角度でポイント (Vector2) を移動したい。私には私の角度があります。しかし、私は数学や libgdx が苦手です。角度を取得するには、これを使用します:
degrees = (float) ((Math.atan2(touchPoint.x - x,
-(touchPoint.y - y)) * 180.0d / Math.PI) + 240.0f);
今、私はベクトルを動かしたい。しかし、私は本当に何をしなければならないのか分かりません... 質問を見ましたが、転送ではなく、角度を変えることについて何かがありました. libgdx にはこのための関数が必要だと思います。助けてください。
アップデート :
public class Games implements ApplicationListener {
SpriteBatch spriteBatch;
Texture texture;
float x = 160;
float y = 5;
Vector2 touch;
Vector2 movement;
Vector2 position;
Vector2 dir;
Vector2 velocity;
float speed;
float deltaTime;
@Override
public void create() {
spriteBatch = new SpriteBatch();
texture = new Texture(Gdx.files.internal("images/1.png"));
touch = new Vector2();
movement = new Vector2();
position = new Vector2();
dir = new Vector2();
velocity = new Vector2();
speed = 5;
deltaTime = Gdx.graphics.getDeltaTime();
}
public void render() {
Gdx.gl.glClear(Gdx.gl10.GL_COLOR_BUFFER_BIT);
deltaTime += 0.5f;
spriteBatch.begin();
begin(deltaTime);
spriteBatch.draw(texture, position.x, position.y);
spriteBatch.end();
}
private void begin(float deltaTime) {
touch.set(Gdx.input.getX(), Gdx.input.getY());
position.set(x, y);
dir.set(touch).sub(position).nor();
velocity.set(dir).scl(speed);
movement.set(velocity).scl(deltaTime);
position.add(movement);
}