我有一个像这样结构的游戏(删除了一些代码行,但Browserify需要所有文件):
游戏需要boot.js和play.js
game.js:
w = window.innerWidth * window.devicePixelRatio,
h = window.innerHeight * window.devicePixelRatio;
window.game = new Phaser.Game((h > w) ? h : w, (h > w) ? w : h, Phaser.CANVAS, 'Phaser', {render:render});
game.state.add('Boot', require('./states/boot.js'));
game.state.add('Play', require('./states/play.js'));
boot.js启动play.js
在boot.js中:
module.exports = {
preload: function() {
//...
},
create: function() {
game.physics.startSystem(Phaser.Physics.ARCADE);
game.world.setBounds(0, 0, 6000, 6000);
this.game.state.start("Play");
}
};
play.js需要interfacePanels.js
在play.js中:
chat = require('./../chat.js');
interfacePanels = require('./../interfacePanels.js');
module.exports = {
create: function() {
interfacePanels.init();
},
update: function() {
//....
}
};
有一种方法可以在interfacePanels.js中显示播放器的配置文件(此文件需要profile.js)
以下是代码:
profile = require('./profile.js');
module.exports = {
show: function(buttonType) {
switch(buttonType.key) {
case 'menuButtonPress':
break;
case 'profileButtonPress':
if(profile.initialized == false) {
profile.create();
profile.initialized = true;
}
break;
}
}
}
问题在于profile.js:
module.exports = {
initialized: false,
START_X: '',
START_Y: '',
create: function() {
//... some code
},
update: function() {
console.log('profile')
},
};
更新功能根本不起作用。
我可以尝试将更新功能添加到play.js文件中,但是如果我这样做,那么如果有console.log命令会有很多功能吗?
我需要将元素移动到起点并检查它们是否重叠。
答案 0 :(得分:0)
非常有趣。谢谢@drhayes
// In play.js...
var profile = require('./profile');
module.exports = {
// other state functions...
update: function() {
profile.update();
}
};