Phaser不会检测碰撞

问题描述:

我在phaser.js上写了一个游戏,您必须避免移动太空船。鼠标被替换为UFO。我需要帮助,试图弄清楚为什么相位器不会检测UFO和太空船组之间的碰撞。请原谅混乱,因为我尝试了很多潜在的解决方案。 代码:Phaser不会检测碰撞

var spaceShip; 
 
var score = 0; 
 
var text; 
 
var gameOver = false; 
 
var veggies; 
 
var cursor; 
 
var gameplayState = { 
 
    create: function() { 
 
     game.add.sprite(0,0,'Stars'); 
 
     veggies = game.add.group(); 
 
     veggies.enableBody = true; 
 
     veggies.physicsBodyType = Phaser.Physics.ARCADE; 
 
     function doSpaceship() { 
 
      
 
      if (ships == true){ 
 
       if (ships == false){ 
 
        kill(); 
 
       } 
 
      if (Math.random() > 0.5){ 
 
       spaceShip = veggies.create(0, 300, 'Ship'); 
 
       spaceShip.angle = 90; 
 
       game.physics.arcade.collide(veggies, cursor, collisionHandler); 
 
       spaceShip.body.velocity.x=1000; 
 
       fx.play(); 
 
       var times = game.time.events.add(Phaser.Timer.SECOND * Math.random() * 3, doSpaceship, this); 
 
       var timess = game.time.events.add(Phaser.Timer.SECOND * 1, kill, this); 
 
      } else { 
 
       spaceShip = veggies.create(Math.random() * 640, 480, 'Ship'); 
 
       game.physics.arcade.collide(veggies, cursor, collisionHandler); 
 

 
       spaceShip.body.velocity.y=-1000; 
 
       gx.play(); 
 
       var times = game.time.events.add(Phaser.Timer.SECOND * Math.random() * 3, doSpaceship, this); 
 
       var timess = game.time.events.add(Phaser.Timer.SECOND * 1, kill, this); 
 
      } 
 
      } 
 
      function kill(){ 
 
       if(gameOver == false){ 
 
        score++; 
 
       } 
 
       spaceShip.destroy(); 
 
      } 
 
     } 
 
     cursor = game.add.sprite(0,0,'Ufo'); 
 
     var ships = true; 
 
     text = game.add.text(0,0,"Score: " + score); 
 
     text.font = 'Saira Extra Condensed'; 
 
     doSpaceship(); 
 
     function collisionHandler(){ 
 
      gameOver = true; 
 
     } 
 
    }, 
 
    update: function(){ 
 
     cursor.x = game.input.mousePointer.x; 
 

 
     cursor.y = game.input.mousePointer.y; 
 
     text.setText("Score: " + score); 
 
    } 
 
};

你应该行

game.physics.arcade.collide(veggies, cursor, collisionHandler); 

移动到更新功能。