Phaser不会发现碰撞

时间:2017-08-10 00:33:12

标签: javascript phaser-framework

我正在使用phaser.js编写游戏,你必须避免移动太空飞船。用UFO替换鼠标。我需要帮助试图弄清楚为什么phaser不会发现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);
    }
};




1 个答案:

答案 0 :(得分:2)

你应该移动

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

更新功能。