1

「AvoidtheBlocks」ゲームを作成しています。このために、GHKJキーを使用してグリッド(2D配列)の周りでキャラクターを移動する必要があります。xターンごとに(レベルが上がるにつれて減少する)影が現れる必要があり、その影はブロックになり、プレイヤーがそのブロックに移動すると、ライフを失います。これのほとんどは、ブロックを表示するという一見単純なタスクを除いて、私のために行われます。これまでのところ、落下するブロックのコードは次のとおりです。

public void rocked(){
int rockInit = turn;        
    if(rockInit > 1){
        int save = turn;
        System.out.println(turn + " ");
        B.board[ran.nextInt(12)][ran.nextInt(12)] = shadow;
            if(save == turn - 3){
                B.board[rockLocX][rockLocY] = rock;
        } 
    } 
}

system.printlnは単にデバッグを目的としており、値にアクセスしていることを確認します。ターンはプレイヤーが移動するたびに1ずつ増加し、ran.nextInt(12)は0から11の間でランダムに生成された数字であり、B.boardはプレイボードです。

4

1 に答える 1

1

「ターン」に初期化した後、「保存」を変更していないようです。そのため、if(save == turn-3) をチェックすると、常に false になるため、ブロックを移動することはありません。経過したターン数を追跡したい場合は、プライベート インスタンス変数をお勧めします」 int turnPassed" で、ターンごとにインクリメントできます。次に、レベルごとに、(turnsPassed % x == 0) かどうかを確認できます。ここで、x は説明したとおりです。それが役立つことを願っています!

于 2012-11-30T15:18:51.133 に答える