2017-11-10 6 views
0

私は、ゲームの終了画面が最後のアニメーションが終了した後にのみ表示されるプログラムを作成しようとしています。私は各オブジェクトが削除された後に実装されたカウンタを使用しています(アニメーションが終了した後でのみです)。カウンタがゼロになると、に終了画面を表示します。残念ながら、私が知ることから、カウンター声明は全く登録されていません。私は機能していないprintステートメントを挿入しました。p5.play counter not working

var star; 
var score; 
var counter; 
function setup() { 
    createCanvas(600,400); 
    score = 0; 
    counter = 20; 

    for (var s = 0; s < 20; s++) { 
     star = createSprite(random(width), random(height)); 
     star.addAnimation("idle", idleAnim); 
     star.addAnimation("explode", explAnim); 
     star.changeAnimation("idle"); 

     star.onMousePressed = function() { 
      this.changeAnimation("explode"); 
      this.animation.looping = false; 
      score +=1 
      if (this.getAnimationLabel() == "explode" && this.animation.getFrame() == this.animation.getLastFrame()) { 
       this.remove(); 
       counter -= 1; 
       print(counter); 
      } 
     } 
    } 

} 
function draw() { 
    if (score == 20 && counter == 0) { 
     background(255,222,51) 
     textSize(90); 
     fill(0) 
     text("YOU WIN!",95,225) 
    } else { 
      drawSprites(); 
    } 
    } 

答えて

0

あなたは背中とdebug your programステップを取る必要があります。たとえば、star.onMousePressed()機能が起動していますか? ifの声明が期待どおりに機能していると思いますか? player.dir()関数が呼び出されていますか?

ifという文が入力されていないようです。あなたはその行のすべての価値を知ることができますか?どのようなものがあなたが期待したものとは異なる価値を持っていますか?

console.log()ステートメントを使用するか、JavaScriptデバッガを使用して上記のすべてに答えます。どのコード行が期待どおりに動作していないかを正確に把握し、MCVEで問題を特定してください。がんばろう。