Jump to content

Switching States Back In Phaser 2.0


jyapayne
 Share

Recommended Posts

Hey, I'm trying to get my state to restart itself in phaser 2.0 when a player finishes the game. Currently, it kind of works, except some sprites and text are missing. The way I'm switching back is like this:

game.state.start('StartScreen', true, true);

But, like I said, it restarts the game with some text and sprites missing.

 

Screenshots:

 

StartScreen Before:

post-7617-0-89207700-1395104180.png

 

StartScreen After:

post-7617-0-87872500-1395104204.png

 

Game screen before:

post-7617-0-16666800-1395104297.png

 

Game screen after:

post-7617-0-25456900-1395104312.png

 

You can see in the game screen that the stars are missing and in the Start screen, all the text is missing.

 

My question is this: Am I doing something wrong or is this a bug? I tried looking in the examples, but there are no examples for states.

Link to comment
Share on other sites

I guess I should also mention that I'm calling this on overlap with two sprites.

game.physics.arcade.overlap(this.spacecraft, this.level_end, this.end_level, null, this); 

and this is the end_level function now:

end_level: function(craft, end_tile){              this.music.stop();              game.state.start('StartScreen', true, false);          },
Link to comment
Share on other sites

In the new build it's now calling destroy on every single object in the world, so something obviously isn't starting up again quite right in your State. Do you get any errors in the console? Can you log out the missing/black objects and see where they are? (maybe check their z value, and x/y, and visible and alpha and stuff like that, to make sure they aren't just hidden somewhere).

Link to comment
Share on other sites

Okay, cool, now we're getting somewhere. It seems that the game world size is not reset when restarting the state. That's my bad, I should have said that I resized the world.

 

That matters because I set the text to appear at game.world.centerY and game.world.centerX. So that's fixed now by using the camera coordinates instead of the world.

 

But the starfield is still messed up, so I have a question. When I switch states, does phaser call create() again?

Link to comment
Share on other sites

Yes Phaser always calls 'create' when it starts a State. Which is why I said about using the 'shutdown' function to clear out local arrays, tweens, etc.

 

That's an interesting point about the game world size not being reset. I think it probably ought to, so will do that.

Link to comment
Share on other sites

 Share

  • Recently Browsing   0 members

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