2017-02-24 6 views
0

事前警告:ユーザーがダウンして左にカーソルを持っており、「トークン」はlftRectと衝突する場合には半初心者フェイザー:キーダウン+衝突キル

は基本的に、私はトークンを殺したいです。衝突のための私のキルコールバック関数が動作していないいくつかの理由(下記関連するコードです):

gumballGoGo.Preloader = function(game){ 
    this.player = null; 
    this.ground = null; 
    //this.tokens = null; 
    this.ready = false; 
}; 

var cursors, lftInit, rghtInit, ground, testDrp, sprite, tokens, rect, lftRect, ctrRect, rghtRect, lftToken; 
var total = 0; 

function lftHit(lftRect, lftToken) { 
    if (lftInit == true){ 
     lftToken.kill() 
    } 
}; 

gumballGoGo.Preloader.prototype = { 
    preload: function(){ 
    }, 

    create: function() { 

     // LFT BOX 
     lftRect = this.add.sprite(0, this.world.height - 150, null); 
     this.physics.enable(lftRect, Phaser.Physics.ARCADE); 
     lftRect.body.setSize(100, 100, 0, 0); 


     // CNTR BOX 
     ctrRect = this.add.sprite(100, this.world.height - 150, null); 
     this.physics.enable(ctrRect, Phaser.Physics.ARCADE); 
     ctrRect.body.setSize(100, 100, 0, 0); 


     // RGHT BOX 
     rghtRect = this.add.sprite(200, this.world.height - 150, null); 
     this.physics.enable(rghtRect, Phaser.Physics.ARCADE); 
     rghtRect.body.setSize(100, 100, 0, 0); 


     // INIT TOKEN GROUP 
     tokens = this.add.group(); 
     tokens.enableBody = true; 
     this.physics.arcade.enable(tokens); 

     testDrp = tokens.create(125, -50, 'token'); 
     testDrp.body.gravity.y = 300; 



     // CONTROLS 
     this.cursors = this.input.keyboard.createCursorKeys(); 

    }, 

    update: function() { 
     this.ready = true; 

     if (this.cursors.left.isDown) 
      { 
       lftInit = true; 
      } 
     else if (this.cursors.right.isDown) 
      { 
       rghtInit = true; 
      } 
     else 
      { 
       lftInit, rghtInit = false; 

      } 

     if (total < 20) 
      { 
       tokenSpawn(); 
      } 

     this.physics.arcade.collide(lftRect, lftToken, lftHit, null, this);  

    } 
}; 


function tokenSpawn() { 

    lftToken = tokens.create(25, -(Math.random() * 800), 'token'); 

    lftToken.body.gravity.y = 300; 

    total++; 

} 

究極の目標はrecreate this type of gameplayにあります。

もう1つ注意してください:今のところ、ランダムなスポーンループを使用して「トークン」を削除しています。私はむしろ、トークンを落とすために時間を計られたパターンを使用したいと思う。それについてのアドバイスがあれば、分かち合いましょう。ありがとう:]

答えて

0

これは推測ですが、gumballGoGo.Preloader.prototypeオブジェクトの外にある関数 'lfthit'に 'this'の最後のパラメータを適用しています。コンソールに何のエラーがありますか?