我一直致力于我的侧面滚动游戏,在画布上生成随机外星人。游戏有基本的街机物理和射击,我现在正在为我的游戏重新启动功能,我已经到目前为止重置了画布上的生命,得分和玩家。但是我在重置外星人群时遇到了麻烦。我的外星人代码是create函数,但是当我在restart函数中调用create aliens函数时,它超出了范围。我跟着这个link作为例子,但它也没有工作。
有没有更好的方法在phaser中重启组?
这是我的小组代码:
//Creates a group of 35 aliens.
function createAliens(){
aliens = game.add.group();
aliens.enableBody = true;
aliens.createMultiple(35, 'aliens', 0, false);
game.time.events.repeat(Phaser.Timer.SECOND, 20, resurrect, this);
//ressurects the alien from the group and adds it to the group, and gives it movement & physics.
function resurrect() {
var ufos = aliens.getFirstDead();
if(ufos){
ufos.reset(game.world.randomX, game.world.randomY);
ufos.body.velocity.setTo(10 + Math.random() * 40, 10 + Math.random() * 40);
ufos.body.bounce.setTo(0.5, 0.5);
ufos.body.collideWorldBounds = true;
ufos.frame = game.rnd.integerInRange(0,36);
}
}
}
这是我的重启功能:
function restart(){
lives.callAll('revive');
aliens.removeAll();
player.revive();
console.log(createAliens());
deadTxt.visible = false;
score = 0;
}
和我的github repo,如果你喜欢玩游戏:)