带有 addEventListener 的 Phaser
Phaser with addEventListener
我正在尝试捕获点击事件并更改游戏状态,但我经常遇到 "undefined" 错误。我使用此代码添加游戏状态:
var game = new Phaser.Game(800, 600, Phaser.AUTO, 'canvas');
game.state.add('Boot', Boot);
game.state.add('Level_1', Level_1);
game.state.start('Boot');
这里我运行游戏介绍并尝试捕捉点击事件
var button;
var Boot = function(game) {};
Boot.prototype = {
preload: function() {
this.load.image('logo','img/logo_allcomp_white.png');
this.load.image('welcome','img/welcome.png');
this.load.image('gradient','img/gradient.png');
},
create: function() {
this.add.sprite(0,0,'gradient');
this.stage.backgroundColor = '#ffffff';
this.add.sprite(20,20,'logo');
var cutters = this.add.tileSprite(0, 0, this.game.width, this.game.height,'welcome');
cutters.autoScroll(-20,0);
button = document.getElementById('startbtn');
button.addEventListener('click',this.updateButton);
},
updateButton: function() {
this.game.state.start('Level_1');
}
};
我无法让它工作。这甚至可以与 canvas 之外的其他 DOM 元素交互吗?将此按钮添加到 canvas 对我不起作用。我必须把我的控制面板放在外面
在您的 updateButton 中,您将游戏引用为 this.game
,而在函数范围内,this
指的是被按下的按钮,从而使 this.game
未定义。您可以使用 game.state.start('Level_1');
调用您的游戏
我为你制作了一支笔:http://codepen.io/kozulowski/pen/YPvyzW
我正在尝试捕获点击事件并更改游戏状态,但我经常遇到 "undefined" 错误。我使用此代码添加游戏状态:
var game = new Phaser.Game(800, 600, Phaser.AUTO, 'canvas');
game.state.add('Boot', Boot);
game.state.add('Level_1', Level_1);
game.state.start('Boot');
这里我运行游戏介绍并尝试捕捉点击事件
var button;
var Boot = function(game) {};
Boot.prototype = {
preload: function() {
this.load.image('logo','img/logo_allcomp_white.png');
this.load.image('welcome','img/welcome.png');
this.load.image('gradient','img/gradient.png');
},
create: function() {
this.add.sprite(0,0,'gradient');
this.stage.backgroundColor = '#ffffff';
this.add.sprite(20,20,'logo');
var cutters = this.add.tileSprite(0, 0, this.game.width, this.game.height,'welcome');
cutters.autoScroll(-20,0);
button = document.getElementById('startbtn');
button.addEventListener('click',this.updateButton);
},
updateButton: function() {
this.game.state.start('Level_1');
}
};
我无法让它工作。这甚至可以与 canvas 之外的其他 DOM 元素交互吗?将此按钮添加到 canvas 对我不起作用。我必须把我的控制面板放在外面
在您的 updateButton 中,您将游戏引用为 this.game
,而在函数范围内,this
指的是被按下的按钮,从而使 this.game
未定义。您可以使用 game.state.start('Level_1');
我为你制作了一支笔:http://codepen.io/kozulowski/pen/YPvyzW