kate Posted January 18, 2017 Share Posted January 18, 2017 Hi, I am developing a game in phaser but I am newbie yet. I want to create a login/signup/fb form in the main screen of the game. I did a html form in the index.html of phaser, but I have some doubts. How could I achieve the communication between the html and the scenes of phaser? I created global variables, but I think that is not a good practice. Are there any options to use a state from html like MyGame.MainPage.startGame()? This is the js script of the index, the function is associated to login button: function login(){ user = check_user_in_db(); if(user){ //If the login is correct variable.startGame(); } } This is the MainPage scene of Phaser: /*********************NAMESPACE********************/ var MyGame = MyGame || {}; /**************************************************/ /******************INIT APP SCENE******************/ MyGame.MainPage = function(game) { variable = this; }; MyGame.MainPage.prototype = { init: function() { }, // init preload: function() { //load Sprites }, //preload create: function() { //create Buttons }, // create shutdown: function() { }, // shutdown startGame: function(){ this.state.start("Menu", true, false); } }; Link to comment Share on other sites More sharing options...
squilibob Posted January 18, 2017 Share Posted January 18, 2017 You can use localStorage. function login(){ user = check_user_in_db(); if(user){ //If the login is correct localStorage.setItem('login', JSON.stringify(user)); variable.startGame(); } } and then get it within your create method with this.login = JSON.parse(localStorage.getItem('login')); There is also a phaser-super-storage Plugin that can handle this for you with a fallback to cookies if the browser is very old. Link to comment Share on other sites More sharing options...
samme Posted January 18, 2017 Share Posted January 18, 2017 It's usually easiest to work with a reference to the current game (Phaser.Game). You can always reach the current state through that. You could save a reference in your global MyGame.game = new Phaser.Game(/*…*/); and then call from login(): MyGame.game.state.start('Menu'); // OR MyGame.game.state.getCurrentState().startGame() Link to comment Share on other sites More sharing options...
kate Posted January 20, 2017 Author Share Posted January 20, 2017 thanks to both for your answers, I will use the reference in that way and it might use the localstorage to save the "session". Link to comment Share on other sites More sharing options...
Recommended Posts