Jump to content

Text not showing on state change


Sawyer
 Share

Recommended Posts

I have a game working using states.  It goes from the preload state to the menu, to the game.

 

When the game loads it displays the text fine, where I can click it to start the game.  However, when the player dies I start the preload sequence again.  The state loads but the text never appears.  It appears to be still there as I can click on the screen to start the game again but I just have a black screen.  I tried adding a tryAgain state to go to this instead but the issue persists.

 

game.js

MyGame.GameState.prototype = {    create: function() {       ....    },    update: function() {       if (this.health == 0) {          this.state.start(tryAgainState)       }    }

tryAgain.js

MyGame.TryAgainState = function (game) {    this.label;};  MyGame.tryAgainState.prototype = {    create: function() {       this.label = this.add.text(this.world.centerX, this.world.centerY, "Start Over",                                   {  font: "65px Arial",                                     fill: "white",                                     align: "center"                                  });                this.label.anchor.set(0.5);        this.label.inputEnabled = true;              this.input.onDown.add(this.startOver, this);    },    startOver: function() {        this.state.start("mainGameState");    }}
Link to comment
Share on other sites

You have a few typos in your code block above, so I am not sure if it's because of that, which is causing the blank screen.

  • MyGame.tryAgainState.prototype should be MyGame.TryAgainState.prototype
  • this.state.start(tryAgainState) should be this.state.start("tryAgainState")

This is assuming that you set up the states as follows:

game.state.add("tryAgainState", MyGame.TryAgainState);game.state.add("mainGameState", MyGame.GameState);

Basically, be careful of your capitalization and your use of quotes.

 

However, I recreated your scenario and had no problems with going back and forth between states and seeing the text.

 
Here is a fiddle: http://jsfiddle.net/chongdashu/c385xpcd/

Link to comment
Share on other sites

Hey chongdashu, 

 

Fixed the typos, the one missing the quotes was a mistake typing in the question but the problem persisted.

 

I logged the text and found out that the coordinates weren't being set for some reason.  I tested by just setting them to (200, 200) and the text appears.

 

Not really sure why this.world.centerX and Y weren't working.

 

 

EDIT:

 

Figured it out.  In my game, I resize the world to be the width of my wide scrolling map, so when I set centerX, it's being placed way out of bounds of the original frame.

Link to comment
Share on other sites

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...