RyanTheBoy Posted February 6, 2014 Share Posted February 6, 2014 EDIT: For those still interested in this issue I have revived it with updated code and such here. Heya, this is my first post so I apologize if this has already been covered in another relevant topic. Essentially I am setting up a HUD prototype. I pass the game object to the HUD initially then prototype all of the relevant functions afterword. I am trying to get a timer setup to essentially display a 1 minute countdown. Each time I try to run the game though I get the error... Uncaught TypeError: Cannot call method 'loop' of undefined Here is the code I am using...~~~HUD = function(game) {this.game = game;this.score = 0;this.text = null;//this.timer = null;}; var countDown = 60; HUD.prototype = {create: function() {this.text = this.game.add.text(16, 16, 'Score: 0\nTimer: 01:00', { fontSize: '32px', fill: '#000' });this.game.time.events.loop(Phaser.Timer.SECOND, updateText, this.game);}, update: function() { }}; function updateText() {countDown--; if (countDown < 10) {this.text.content = 'Score: 0\nTimer: 00:0' + countDown;} else {this.text.content = 'Score: 0\nTimer: 00:' + countDown;} if (countDown == 0) {endGame();}} function endGame() {game.state.start('GameOver');}~~~Any thoughts? Link to comment Share on other sites More sharing options...
rich Posted February 6, 2014 Share Posted February 6, 2014 Yes I think this is related to a bug I (mostly) fixed last night - when the state changes all of the timers are cleared, but as that is happening in a callback here it's still processing the list of timers, so throws that error. To get around it for now instead of changing state, set a "willChange" flag or something and check that in your state update. If true, then change. This will remove the state change outside of the callback. Link to comment Share on other sites More sharing options...
RyanTheBoy Posted February 6, 2014 Author Share Posted February 6, 2014 I will give this a shot and report the results ASAP! Love the framework by the way. I migrated over to Phaser from Enchant and don't see myself ever going back. Link to comment Share on other sites More sharing options...
RyanTheBoy Posted February 6, 2014 Author Share Posted February 6, 2014 I am still getting the same error it seems. Here is the updated code.. ~~~HUD = function(game) {this.game = game;this.score = 0;this.text = null;//this.timer = null;}; var countDown = 60;var endGame = false; HUD.prototype = {create: function() {this.text = this.game.add.text(16, 16, 'Score: 0\nTimer: 01:00', { fontSize: '32px', fill: '#000' });this.game.time.events.loop(Phaser.Timer.SECOND, updateText, this.game);}, update: function() {if (endGame) {this.game.state.start('GameOver');}}}; function updateText() {countDown--; if (countDown < 10) {this.text.content = 'Score: 0\nTimer: 00:0' + countDown;} else {this.text.content = 'Score: 0\nTimer: 00:' + countDown;} if (countDown == 0) {endGame = true;}}~~~ Perhaps I am misunderstanding what you had meant. =/ Link to comment Share on other sites More sharing options...
rich Posted February 6, 2014 Share Posted February 6, 2014 No that's exactly what I meant, it must be a bug in the Timer. Please keep an eye on the github repo (you can set it to 'watch' if you like) and you'll see when I push a new build to address this. You could try the dev branch (1.1.5) as it has a few Timer fixes in already and no other changes, so is safe to use atm. Link to comment Share on other sites More sharing options...
RyanTheBoy Posted February 6, 2014 Author Share Posted February 6, 2014 I'll try the dev in the meantime and go from there. Thanks for the help! Link to comment Share on other sites More sharing options...
Zaidar Posted February 15, 2014 Share Posted February 15, 2014 I recently started to use generator for phaser with Yeoman. npm : https://www.npmjs.org/package/generator-phaser When swaping my code to this new project architecture, I had the same problem as described above. So I checked the version, it was 1.3. I replaced by 1.5, and it solved the issue ! Thanks Rich for the 1.5 I was stunned to see it comes out so quickly after the 1.1.4, keep up the good job. Link to comment Share on other sites More sharing options...
Recommended Posts