0

Javaでゲームを作っていて、ランダムに動くキャラクターを作りたいです。私が作ったものは非常に痙性です。私は基本的に、生成された乱数の間に遅延を追加したいと考えています。私は初心者なので、コードを判断しないでください笑

public class Monster extends Entity{

private World world;

Image monster;

public Monster(int x, int y, World world) {
        super(x, y, world);
        w = 32;
        h = 32;
        this.world = world;
}

public void render(GameContainer gc, Graphics g) throws SlickException{
        super.render(gc, g);
        monster = new Image("gfx/world/monster.png");
        g.drawImage(monster, x, y);
}

public void update(GameContainer gc, int delta) throws SlickException{
    super.update(gc, delta);
    Random move = new Random();
    int number;

    for(int counter=1; counter<=1;counter++){
        number = move.nextInt(4); 
        System.out.println(number);


        if(number == 0){
            setDy(-1);
        }else if(number == 1){
            setDx(-1);
        }else if(number == 2){
            setDy(5);   
        }else if(number == 3){
            setDx(5);
        }else{
            setDx(0);
            setDy(0);

        }
    }
}
}
4

3 に答える 3

1

これは、ゲームで異なる更新とレンダリング レートを使用するために使用される一般的な手法です。あなたがしなければならないことは(疑似コードの例)です:

1 - 時間変数を初期化します - DateTime lastUpdate = new DateTime();

ループに入るたびに:

2 - 特定の時間が経過したかどうかを確認します - lastUpdate.hasPassed(X_TIME, new DateTime());

3 - 時間が経過した場合 (最後の行が true の場合) lastUpdate = new DateTime();

4 - そうでなければリターン

于 2013-04-18T02:26:24.580 に答える
0

追加してみる

 try {
      Thread.sleep(ms);
    } catch (InterruptedException e) {
      e.printStackTrace();
    }

where ms- 何ミリ秒、例えば 1000

于 2013-04-18T00:11:08.207 に答える