我正在使用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);
}
};

答案 0 :(得分:2)
你应该移动
行game.physics.arcade.collide(veggies, cursor, collisionHandler);
更新功能。