更新功能在Phaser的文件中不起作用

时间:2015-05-07 08:29:48

标签: jquery node.js browserify phaser-framework

我有一个像这样结构的游戏(删除了一些代码行,但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命令会有很多功能吗?

我需要将元素移动到起点并检查它们是否重叠。

1 个答案:

答案 0 :(得分:0)

非常有趣。谢谢@drhayes

// In play.js...
var profile = require('./profile');

module.exports = {
   // other state functions...

   update: function() {
       profile.update();
   }
};