Сегодня познакомилась с Phaser 2 и Javascript (то есть знания минимальные). И решила сделать Flappy Bird. В игре есть таймер, он зависает после первого тика
this.timer = this.game.time.events.loop(2488, addPipe(), this);
Не могу понять в чем дело. Заранее спасибо всем, кто ответит (´。• ω •。`).
Полный код:
var game = new Phaser.Game(400, 640);
var sprite;
var jumpButton;
var spriteBird;
var pipe1;
var pipe2;
var score;
var total = 0;
var nyanNeko = function(game){}
nyanNeko.prototype = {
preload: function() {
game.load.image('block1', 'assets/block1.png')
game.load.image('block2', 'assets/block2.png');
game.load.image('block1_1', 'assets/block1_1.png');//これわスプライト
game.load.image('block1_2', 'assets/block1_2.png');
game.load.image('block3', 'assets/block3.png');
game.load.image('background', 'assets/back.png');
game.load.image('bird', 'assets/nyan.png');
},
create: function() {
game.physics.startSystem(Phaser.Physics.ARCADE);
sprite = game.add.tileSprite(0, 0, 480, 640, 'background');
score = game.add.text(10,10,"SCORE -");
spriteBird =game.add.sprite(20,320,'bird');
spriteBird.width = 77;
spriteBird.height = 70;
game.physics.arcade.enable(spriteBird);
spriteBird.body.gravity.y = 999;
jumpButton = game.input.keyboard.addKey(Phaser.Keyboard.SPACEBAR);
jumpButton.onDown.add(jump, this);
this.timer = this.game.time.events.loop(2488, addPipe(), this);
},
update: function() {
game.physics.arcade.overlap(spriteBird,pipe1, this.restart, null, this);
game.physics.arcade.overlap(spriteBird,pipe2, this.restart, null, this);
if( spriteBird.y > game.height)
restart();
},
restart: function() {
this.game.time.events.remove(this.timer);
game.state.start('main');
}
};
function addPipe(){
var npipe;
var npipe2;
npipe = game.add.sprite(400,0,'block1_1');
npipe2 = game.add.sprite(400,450,'block1_2');
game.physics.arcade.enable(npipe);
npipe.body.velocity.x = -200;
npipe.checkWorldBounds = true;
npipe.outOfBoundsKill = true;
game.physics.arcade.enable(npipe2);
npipe2.body.velocity.x = -200;
npipe2.checkWorldBounds = true;
npipe2.outOfBoundsKill = true;
pipe1=npipe;
pipe2=npipe2;
total++;
}
function randomInt (min, max) {
var rand = min + Math.random() * (max + 1 - min);
rand = Math.floor(rand);
return rand;
}
function jump() {
spriteBird.body.velocity.y = -350;
}
game.state.add('main', nyanNeko);
game.state.start('main');