preMenu.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306
  1. var errorEmptyName;
  2. var debugmode = false;
  3. /*
  4. var langState = {
  5. create: function(){},
  6. --------------------------------------- end of phaser functions
  7. setLang: function(){} //calls loadState
  8. };
  9. var loadState = {
  10. preload: function(){},
  11. create: function(){} //calls nameState
  12. -------------------------------------- end of phaser functions
  13. };
  14. var nameState = {
  15. create: function(){},
  16. ------------------------------------------------ end of phaser functions
  17. nameIsEmpty: function(){}
  18. ready: function(){} //calls menu.js -> menuState
  19. };
  20. var buttonSettings = {
  21. addButtons: function(_,_,_,_,_,_,_,_,_){},
  22. loadState: function(){}
  23. };
  24. */
  25. // "choose language" screen
  26. var langState = {
  27. create: function() {
  28. game.stage.backgroundColor = '#cce5ff';
  29. var style = { font: '28px Arial', fill: '#00804d', align: 'center' };
  30. //pt_BR
  31. var title1 = game.add.text(this.game.world.centerX - 220, this.game.world.centerY - 100, 'FRAÇÕES ', style);
  32. title1.anchor.setTo(1, 0.5);
  33. var flag1 = game.add.sprite(this.game.world.centerX - 120, this.game.world.centerY - 100, 'flag_BR');
  34. flag1.anchor.setTo(0.5, 0.5);
  35. flag1.inputEnabled = true;
  36. flag1.input.useHandCursor = true;
  37. flag1.events.onInputDown.add(this.setLang,{lang:'pt_BR'});
  38. flag1.events.onInputOver.add(function(){ flag1.scale.setTo(1.05) });
  39. flag1.events.onInputOut.add(function(){ flag1.scale.setTo(1) });
  40. //es_PE
  41. var title2 = game.add.text(this.game.world.centerX + 200, this.game.world.centerY - 100, 'FRACCIONES ', style);
  42. title2.anchor.setTo(1, 0.5);
  43. var flag2 = game.add.sprite(this.game.world.centerX + 300, this.game.world.centerY - 100, 'flag_PE');
  44. flag2.anchor.setTo(0.5, 0.5);
  45. flag2.inputEnabled = true;
  46. flag2.input.useHandCursor = true;
  47. flag2.events.onInputDown.add(this.setLang,{lang:'es_PE'});
  48. flag2.events.onInputOver.add(function(){ flag2.scale.setTo(1.05) });
  49. flag2.events.onInputOut.add(function(){ flag2.scale.setTo(1) });
  50. //en_US
  51. var title3 = game.add.text(this.game.world.centerX - 220, this.game.world.centerY + 100, 'FRACTIONS ', style);
  52. title3.anchor.setTo(1, 0.5);
  53. var flag3 = game.add.sprite(this.game.world.centerX - 120, this.game.world.centerY + 100, 'flag_US');
  54. flag3.anchor.setTo(0.5, 0.5);
  55. flag3.inputEnabled = true;
  56. flag3.input.useHandCursor = true;
  57. flag3.events.onInputDown.add(this.setLang,{lang:'en_US'});
  58. flag3.events.onInputOver.add(function(){ flag3.scale.setTo(1.05) });
  59. flag3.events.onInputOut.add(function(){ flag3.scale.setTo(1) });
  60. //fr_FR
  61. var title4 = game.add.text(this.game.world.centerX + 200, this.game.world.centerY + 100, 'FRACTIONS ', style);
  62. title4.anchor.setTo(1, 0.5);
  63. var flag4 = game.add.sprite(this.game.world.centerX + 300, this.game.world.centerY + 100, 'flag_FR');
  64. flag4.anchor.setTo(0.5, 0.5);
  65. flag4.inputEnabled = true;
  66. flag4.input.useHandCursor = true;
  67. flag4.events.onInputDown.add(this.setLang,{lang:'fr_FR'});
  68. flag4.events.onInputOver.add(function(){ flag4.scale.setTo(1.05) });
  69. flag4.events.onInputOut.add(function(){ flag4.scale.setTo(1) });
  70. },
  71. setLang: function(){
  72. //set language
  73. lang = this.lang;
  74. //start resource loading
  75. game.state.start('load');
  76. }
  77. };
  78. // "loading" screen
  79. var loadState = {
  80. preload: function() {
  81. // Displaying the progress bar
  82. var progressBar = game.add.sprite(game.world.centerX, game.world.centerY, 'progressBar');
  83. progressBar.anchor.setTo(0.5, 0.5);
  84. game.load.setPreloadSprite(progressBar);
  85. // Loading dictionary
  86. game.load.json('dictionary', 'assets/languages/'+lang+'.json');
  87. },
  88. create: function() {
  89. // gets selected language from json
  90. lang = game.cache.getJSON('dictionary');
  91. audio_lang_aux = lang.audio_on;
  92. if(!nameStatus){
  93. nameStatus = true;
  94. game.state.start('name');
  95. }else{
  96. game.state.start('menu');
  97. }
  98. }
  99. };
  100. // "username" screen
  101. var nameState = {
  102. create: function() {
  103. var style = { font: '30px Arial', fill: '#00804d', align: 'center' };
  104. var styleName = { font: '44px Arial', fill: '#000000', align: 'center' };
  105. // title
  106. var title = game.add.text(this.game.world.centerX, this.game.world.centerY - 100, lang.insert_name, style);
  107. title.anchor.setTo(0.5);
  108. // "READY" button
  109. var btn = game.add.graphics(this.game.world.centerX - 84, this.game.world.centerY + 70);
  110. btn.lineStyle(1, 0x293d3d);
  111. btn.beginFill(0x3d5c5c);
  112. btn.drawRect(0, 0, 168, 60);
  113. btn.alpha = 0.5;
  114. btn.endFill();
  115. btn.inputEnabled = true;
  116. btn.input.useHandCursor = true;
  117. btn.events.onInputDown.add(this.nameIsEmpty, null);
  118. btn.events.onInputOver.add(function(){ btn.alpha=0.4 });
  119. btn.events.onInputOut.add(function(){ btn.alpha=0.5 });
  120. var ready = game.add.text(this.game.world.centerX + 1, this.game.world.centerY + 102, lang.ready, { font: '34px Arial', fill: '#f0f5f5', align: 'center' });
  121. ready.anchor.setTo(0.5);
  122. errorEmptyName = game.add.text(this.game.world.centerX, this.game.world.centerY - 70, "", {font: '18px Arial', fill: '#330000', align: 'center'});
  123. errorEmptyName.anchor.setTo(0.5);
  124. document.getElementById("text-field-div").style.visibility = "visible";
  125. document.getElementById("name_id").addEventListener('keypress', function(e){
  126. var keycode = e.keycode ? e.keycode : e.which;
  127. //se apertar enter vai para ready, assim como o botão
  128. if(keycode == 13){
  129. nameState["nameIsEmpty"]();
  130. }
  131. });
  132. },
  133. nameIsEmpty: function() {
  134. if(document.getElementById("name_id").value!=""){
  135. nameState["ready"]();
  136. errorEmptyName.setText("");
  137. }else{
  138. errorEmptyName.setText(lang.empty_name);
  139. //D alert('js/preMenu.js: errorEmptyName.setText=' + lang.empty_name);
  140. }
  141. },
  142. ready: function() {
  143. // saves the typed name on username variable
  144. username = document.getElementById("name_id").value;
  145. if(debugmode) console.log("user is" + username);
  146. document.getElementById("text-field-div").style.visibility = "hidden";
  147. //clears the text field again
  148. document.getElementById("name_id").value = "";
  149. if(oneMenu){ //If menu, normal game
  150. // Go to the menu state
  151. game.state.start('menu');
  152. }else{ //parameters game
  153. if(oneShape=="Circle"){
  154. game.state.start("mapCOne");
  155. }else if(oneShape=="Square"){
  156. if(oneOperator=='Mixed'){
  157. twoPosition = 0;
  158. twoMove = true;
  159. twoDifficulty = oneDifficulty;
  160. twoOperator= "";
  161. twoLabel= false;
  162. twoShape = oneShape;
  163. twoType = oneType;
  164. twoMenu = false;
  165. game.state.start("mapSTwo");
  166. }else{
  167. game.state.start("mapSOne");
  168. }
  169. }
  170. }
  171. }
  172. };
  173. var m_info_right, m_info_left;
  174. var m_world, m_menu, m_back, m_help, m_audio;
  175. var buttonSettings = {
  176. addButtons: function(left, right, b0Esq, b1Esq, b2Esq, b0Dir, b1Dir, phase, helpBtn){
  177. var xEsq = 10;
  178. var xDir = (game.world.width - 50 - 10);
  179. if(left == 1){
  180. m_info_left = game.add.text(xEsq, 53, "", { font: "20px Arial", fill: "#330000", align: "center" });
  181. }
  182. if(right == 1){
  183. m_info_right = game.add.text(xDir+50, 53, "", { font: "20px Arial", fill: "#330000", align: "right" });
  184. m_info_right.anchor.setTo(1,0.02);
  185. }
  186. //left buttons
  187. if(b0Esq == 1){
  188. // Return to diffculty
  189. m_back = game.add.sprite(xEsq, 10, 'back');
  190. m_back.inputEnabled = true;
  191. m_back.input.useHandCursor = true;
  192. m_back.events.onInputDown.add(this.loadState, {state: phase, beep: beepSound});
  193. m_back.events.onInputOver.add(function(){ m_info_left.text = lang.menu_back});
  194. m_back.events.onInputOut.add(function(){ m_info_left.text = ""});
  195. xEsq+=50;
  196. }
  197. if(b1Esq == 1){
  198. // Return to menu button
  199. m_list = game.add.sprite(xEsq, 10, 'list');
  200. m_list.inputEnabled = true;
  201. m_list.input.useHandCursor = true;
  202. m_list.events.onInputDown.add(this.loadState, {state: "menu", beep: beepSound});
  203. m_list.events.onInputOver.add(function(){ m_info_left.text = lang.menu_list});
  204. m_list.events.onInputOut.add(function(){ m_info_left.text = ""});
  205. xEsq+=50;
  206. }
  207. if(b2Esq == 1){
  208. // Help button
  209. m_help = game.add.sprite(xEsq, 10, 'help');
  210. m_help.inputEnabled = true;
  211. m_help.input.useHandCursor = true;
  212. m_help.events.onInputDown.add(helpBtn, {beep: beepSound});
  213. m_help.events.onInputOver.add(function(){ m_info_left.text = lang.menu_help});
  214. m_help.events.onInputOut.add(function(){ m_info_left.text = ""});
  215. xEsq+=50;
  216. }
  217. //rightButtons
  218. if(b0Dir == 1){
  219. m_audio = game.add.sprite(xDir, 10, 'audio');
  220. audioStatus ? m_audio.frame = 0 : m_audio.frame = 1;
  221. m_audio.inputEnabled = true;
  222. m_audio.input.useHandCursor = true;
  223. m_audio.events.onInputDown.add(function(){ if(audioStatus){ audioStatus=false; m_audio.frame = 1; }else{ audioStatus=true; m_audio.frame = 0; }});
  224. m_audio.events.onInputOver.add(function(){ m_info_right.text = lang.audio });
  225. m_audio.events.onInputOut.add(function(){ m_info_right.text = "" });
  226. xDir-=50;
  227. }
  228. if(b1Dir == 1){
  229. // Return to language button
  230. m_world = game.add.sprite(xDir, 10, 'world');
  231. m_world.inputEnabled = true;
  232. m_world.input.useHandCursor = true;
  233. m_world.events.onInputDown.add(this.loadState, {state: "language", beep: beepSound});
  234. m_world.events.onInputOver.add(function(){ m_info_right.text = lang.menu_world });
  235. m_world.events.onInputOut.add(function(){ m_info_right.text = "" });
  236. xDir-=50;
  237. }
  238. },
  239. loadState: function(){
  240. if(audioStatus){
  241. this.beep.play();
  242. }
  243. game.state.start(this.state);
  244. }
  245. };