我想移動一個角度(Vector2)。我有我的角度。但我不擅長數學或libgdx。爲獲得角度我使用此:在一個角度上移動一個點(矢量)+ Libgdx
degrees = (float) ((Math.atan2(touchPoint.x - x,
-(touchPoint.y - y)) * 180.0d/Math.PI) + 240.0f);
現在,我想要移動向量。但我真的不知道我必須做什麼......我看了一些問題,但只是關於改變角度,而不是轉移。我認爲在libgdx中必須有一個這樣的函數。請幫忙。
UPDATE:
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);
}
我做你曾經說過的,但有一個問題。我無法達到'scl(...)'方法。該方法的圖書館名稱是什麼? – Hosein
這是我的庫。我只是下載最新版本,並修復。但它不動。我更新我的代碼。 – Hosein
所以我的問題是deltaTime。我沒有更新它。更新後它運行良好。 TNX。 p.s:但如果你有更好的方法來更新它,只需對我說:D – Hosein