Phaser 不会检测到碰撞

Phaser Wont Detect Collision

我正在 phaser.js 中编写一个游戏,您必须避免移动宇宙飞船。鼠标被一个飞碟取代。我需要帮助来弄清楚为什么移相器无法检测到 UFO 和宇宙飞船组之间的碰撞。请原谅混乱,因为我已经尝试了很多可能的解决方案。 代码:

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);

到更新函数。