Jump to content

Phaser Context


darcys22
 Share

Recommended Posts

Hi all,

 

I have a game with something like the following:

var GameState = function(game) {};GameState.prototype.preload = function() {  ...  this.floor = this.game.add.sprite(0,this.game.height-50,rlrbdr);}Shift = function(hour) {  this.ypos = function() {    return game.height - GameState.prototype.floor.height;   }}var game = new Phaser.Game(1136, 640, Phaser.AUTO);game.state.add('game', GameState, true);

I am trying to get to my floor sprite within my ypos function and I was under the impression that I would be able to access it with GameState.prototype.floor. However it is not there.

 

I feel this is probably my lack of understanding of JavaScript and the this keyword, but how am I meant to access my sprite outside the GameState?

Link to comment
Share on other sites

The instance of the state will be available on the StateManager object (game.state) in its states property, so you can access the state's properties (of which your floor object is one when added to 'this' within the state) there: 

game.state.states['game'].floor.height

Though this is a rather unclean way of doing it - ideally Shift should either be a function on the state itself, or should be passed the object it needs to act upon. It's hard to describe this or determine the right way from the code you've provided but looking at Phaser's own source and the examples should give you a good understanding of how it's structured; which is by no means the only way to do it, but certainly a good way.

Shift = function(hour, floor) {  this.ypos = function() {    return floor.game.height - floor.height;  }}
Link to comment
Share on other sites

 Share

  • Recently Browsing   0 members

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