1

私はシューティングゲームをやっていて、配列でたくさんの敵を追加してから、マップ上でランダムな位置を与えていますが、位置に到達した後にそれらを動かす方法がわかりません. これは私の敵のクラスです:

import com.badlogic.gdx.math.Vector2;
import java.util.Random;
public class Enemy {

private static final Random r = new Random();
int x = r.nextInt(36);
int y = r.nextInt(24);
Vector2 vect = new Vector2(x,y);
float ROTATION_SPEED = 500;

    public Follower(float SPEED, float rotation, float width, float height,
                    Vector2 position) {
            super(SPEED, rotation, width, height, position);
    }

    public void advance(float delta, Ship ship) {
        if(rotation > 360)
                rotation -= 360;

            position.lerp(vect, delta);

        rotation += delta * ROTATION_SPEED;


        super.update(ship);

        //Edited: i forget to put this lines:
        if(vect.equals(this.getPosition())){
        x = r.nextInt(36);
        y = r.nextInt(24);

        }
}

一定時間後に x/y 値を移動させるには、このクラスにどのようなメソッドを実装する必要がありますか?

4

2 に答える 2

0

Thread.sleep は、さらなる処理を行う前にしばらくスリープする方法です。この種の問題を簡単に解決するために、Java のマルチスレッド化を検討し始めることをお勧めします。ここから始めることができます: http://docs.oracle.com/javase/tutorial/essential/concurrency/

すぐに解決するには、while ループに Thread.sleep() を記述します。

于 2013-09-29T08:57:52.313 に答える