BasicGame.Game = function (game) { }; BasicGame.Game.prototype = { create: function () { this.totaltime = 0; this.totalclicks = 0; this.showmove = true; this.gameState='ready'; this.numberofsteps = 20; this.moves = []; this.playermoves = []; this.initmatrix(); this.music = this.add.audio('music',1,true); this.music.play('',0,1,true); this.titleimage = this.add.sprite(this.world.centerX,70,'spriteset'); this.titleimage.frameName = 'title.png'; this.titleimage.anchor.setTo(0.5,0.5); this.titleimage.scale.setTo(0.5,0.5); this.boundingbox = this.add.sprite(this.world.centerX,this.world.height-20,'spriteset'); this.boundingbox.frameName = 'outerbox.png'; this.boundingbox.anchor.setTo(0.5,1); this.boundingbox.scale.setTo(0.5,0.5); this.startButton = this.add.sprite(this.world.centerX-80,180,'spriteset'); this.startButton.frameName = 'start.png'; this.startButton.anchor.setTo(0.5,0.5); this.startButton.scale.setTo(0.5,0.5); this.startButton.inputEnabled = true; this.startButton.events.onInputDown.add(this.startGame, this); this.solveButton = this.add.sprite(this.world.centerX+80,180,'spriteset'); this.solveButton.frameName = 'solve.png'; this.solveButton.anchor.setTo(0.5,0.5); this.solveButton.scale.setTo(0.5,0.5); this.solveButton.inputEnabled = true; this.solveButton.events.onInputDown.add(this.solveGame, this); this.getUrlButton = this.add.sprite(this.world.centerX,230,'spriteset'); this.getUrlButton.frameName = 'geturl.png'; this.getUrlButton.anchor.setTo(0.5,0.5); this.getUrlButton.scale.setTo(0.5,0.5); this.getUrlButton.inputEnabled = true; this.getUrlButton.events.onInputDown.add(this.convertToUrl, this); this.timertext = this.add.text(this.world.centerX+20, 20, "Time", { font: "30px Arial", fill: "#ffffff", align: "center" }); this.timertext.visible = false; this.clicktext = this.add.text(this.world.centerX+20, 80, "Clicks", { font: "30px Arial", fill: "#ffffff", align: "center" } ); this.clicktext.visible = false; this.musicButton = this.add.sprite(this.world.width - 10,5,'spriteset'); this.musicButton.frameName = 'music_on.png'; this.musicButton.anchor.setTo(1,0); this.musicButton.scale.setTo(0.5,0.5); this.musicButton.inputEnabled = true; this.musicButton.events.onInputDown.add(this.toggleMusic, this); this.wintext = this.add.text(this.world.centerX+10, 15, "YOU\n WIN!", { font: "60px Arial", fill: "#ffffff", align: "center" }); this.wintext.visible = false; this.urlstring = window.location.href; this.checkMap(); }, checkMap : function(){ var loc = this.urlstring.indexOf("?"); if(loc==-1){ return; } var solution = this.urlstring.substr(loc+1); var temp; for(var i=0;i15){ this.playermoves.length = 0; return; } this.playermoves.push(temp); this.shiftTile(this.tiles[temp-1]); } this.startButton.frameName = 'reset.png'; this.gameState = 'started'; this.resetScores(); this.clicktext.visible = true; this.timertext.visible = true; this.time.events.loop(Phaser.Timer.SECOND, this.updateTime, this); this.add.tween(this.titleimage).to({x : 100},500, Phaser.Easing.Sinusoidal.InOut, true); }, solveGame : function(){ // if(this.gameState=='started'){ this.solvePuzzle(); // this.startButton.frameName = 'start.png'; this.playermoves.length = 0; this.moves.length = 0; this.gameState = 'solving'; // } }, resettiles : function(){ for(var i=0;i<4;i++){ for(var j=0;j<4;j++){ var tilenumber = (i*4)+j; this.matrix[i][j] = tilenumber+1; if(tilenumber<15){ // if(this.showmove==true){ // this.add.tween(this.tiles[tilenumber]).to({x : 83+j*65,y : 315+i*72},1000, Phaser.Easing.Sinusoidal.InOut, true); // } // else{ this.tiles[tilenumber].x = 83+j*65; this.tiles[tilenumber].y = 315+i*72; // } } else{ this.matrix[i][j] = 0; } } } }, solvePuzzle : function(){ if(this.playermoves.length>0||this.moves.length>0){ this.timertext.visible = false; this.clicktext.visible = false; this.wintext.visible = false; this.resetTexts(1); this.switchAlpha(1); this.resetScores(); var totalmoves = this.moves.concat(this.playermoves); // totalmoves.reverse(); var counter = totalmoves.length; this.time.events.repeat(200, totalmoves.length, function(){ counter--; this.shiftTile(this.tiles[totalmoves[counter]-1]); } , this); this.add.tween(this.titleimage).to({x : this.world.centerX},500, Phaser.Easing.Sinusoidal.InOut, true); } }, shuffletiles : function(totalsteps){ this.moves.length = 0; var oldk = -1; while(this.moves.length0||this.playermoves.length>0){ var temp = this.moves.concat(this.playermoves); var temp2 = window.location.href; temp2 = temp2.split(""); temp2.push('?'); for(var i=0;i