Browse Source

Incluído o iFractions adaptado como iLM

Igor 3 years ago
parent
commit
ec14e8a8d3
100 changed files with 23140 additions and 2385 deletions
  1. 1 1
      db/install.php
  2. 4 3
      db/upgrade.php
  3. BIN
      ilm/iFractions/0.1.20200221/ifractions/assets/img/flag/ITAL.png
  4. BIN
      ilm/iFractions/0.1.20200221/ifractions/assets/img/game/1-left-subs.png
  5. BIN
      ilm/iFractions/0.1.20200221/ifractions/assets/img/game/1-right-nosubs.png
  6. BIN
      ilm/iFractions/0.1.20200221/ifractions/assets/img/game/2-left-subs.png
  7. BIN
      ilm/iFractions/0.1.20200221/ifractions/assets/img/game/2-right-nosubs.png
  8. BIN
      ilm/iFractions/0.1.20200221/ifractions/assets/img/game/3-left-subs.png
  9. BIN
      ilm/iFractions/0.1.20200221/ifractions/assets/img/game/3-right-nosubs.png
  10. BIN
      ilm/iFractions/0.1.20200221/ifractions/assets/img/game/4-left-subs.png
  11. BIN
      ilm/iFractions/0.1.20200221/ifractions/assets/img/game/4-right-nosubs.png
  12. BIN
      ilm/iFractions/0.1.20200221/ifractions/assets/img/game/5.png
  13. BIN
      ilm/iFractions/0.1.20200221/ifractions/assets/img/game/fases projeto 1.0.psd
  14. BIN
      ilm/iFractions/0.1.20200221/ifractions/assets/img/game/fases projeto 2.0.psd
  15. BIN
      ilm/iFractions/0.1.20200221/ifractions/assets/img/kid/walk.png
  16. BIN
      ilm/iFractions/0.1.20200221/ifractions/assets/img/menu/audio_48x48.png
  17. 0 26
      ilm/iFractions/0.1.20200221/ifractions/assets/languages/en_US.json
  18. 0 26
      ilm/iFractions/0.1.20200221/ifractions/assets/languages/es_PE.json
  19. 0 26
      ilm/iFractions/0.1.20200221/ifractions/assets/languages/fr_FR.json
  20. 0 26
      ilm/iFractions/0.1.20200221/ifractions/assets/languages/it_IT.json
  21. 0 26
      ilm/iFractions/0.1.20200221/ifractions/assets/languages/pt_BR.json
  22. 3 3
      ilm/iFractions/0.1.20200221/ifractions/css/bootstrap.css
  23. 1 1
      ilm/iFractions/0.1.20200221/ifractions/css/bootstrap.css.map
  24. 1311 0
      ilm/iFractions/0.1.20200221/ifractions/css/jquery-ui.css
  25. 1 0
      ilm/iFractions/0.1.20200221/ifractions/css/jquery.modal.min.css
  26. 187 0
      ilm/iFractions/0.1.20200221/ifractions/eindex.php
  27. 0 0
      ilm/iFractions/0.1.20200221/ifractions/fonts/glyphicons-halflings-regular.eot
  28. 0 0
      ilm/iFractions/0.1.20200221/ifractions/fonts/glyphicons-halflings-regular.svg
  29. 0 0
      ilm/iFractions/0.1.20200221/ifractions/fonts/glyphicons-halflings-regular.ttf
  30. 0 0
      ilm/iFractions/0.1.20200221/ifractions/fonts/glyphicons-halflings-regular.woff
  31. 0 0
      ilm/iFractions/0.1.20200221/ifractions/fonts/glyphicons-halflings-regular.woff2
  32. 729 89
      ilm/iFractions/0.1.20200221/ifractions/index.html
  33. 277 303
      ilm/iFractions/0.1.20200221/ifractions/js/boot.js
  34. 542 306
      ilm/iFractions/0.1.20200221/ifractions/js/circleOne.js
  35. 18706 0
      ilm/iFractions/0.1.20200221/ifractions/js/jquery-ui.js
  36. 5 0
      ilm/iFractions/0.1.20200221/ifractions/js/jquery.js
  37. 0 0
      ilm/iFractions/0.1.20200221/ifractions/js/jquery.min.js
  38. 5 0
      ilm/iFractions/0.1.20200221/ifractions/js/jquery.modal.min.js
  39. 0 212
      ilm/iFractions/0.1.20200221/ifractions/js/map.js
  40. 193 181
      ilm/iFractions/0.1.20200221/ifractions/js/menu.js
  41. 0 0
      ilm/iFractions/0.1.20200221/ifractions/js/phaser.js
  42. 0 0
      ilm/iFractions/0.1.20200221/ifractions/js/phaser.min.js
  43. 0 307
      ilm/iFractions/0.1.20200221/ifractions/js/preMenu.js
  44. 569 382
      ilm/iFractions/0.1.20200221/ifractions/js/squareOne.js
  45. 543 341
      ilm/iFractions/0.1.20200221/ifractions/js/squareTwo.js
  46. 0 126
      ilm/iFractions/0.1.20200221/ifractions/php/save.php
  47. 63 0
      ilm/iFractions/0.1.20200221/ifractions/resource/cn/save.php
  48. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/fx/beep.mp3
  49. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/fx/beep.ogg
  50. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/fx/error.mp3
  51. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/fx/error.ogg
  52. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/fx/ok.mp3
  53. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/fx/ok.ogg
  54. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/airballoon_base.png
  55. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/airballoon_upper.png
  56. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/birch.png
  57. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/farm.png
  58. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/flag.png
  59. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/garage.png
  60. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/house.png
  61. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/kid/lost.png
  62. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/kid/run.png
  63. BIN
      ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/kid/walk.png
  64. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/place_a.png
  65. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/place_b.png
  66. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/rock.png
  67. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/school.png
  68. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/sign.png
  69. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/tractor/frame-0.png
  70. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/tractor/frame-1.png
  71. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/tractor/frame-2.png
  72. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/tractor/frame-3.png
  73. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/tractor/frame-4.png
  74. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/tractor/frame-5.png
  75. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/tractor/frame-6.png
  76. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/tractor/frame-7.png
  77. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/tractor/frame-8.png
  78. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/tractor/frame-9.png
  79. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/tractor/frame.png
  80. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/tree.png
  81. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/tree2.png
  82. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/tree3.png
  83. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/tree4.png
  84. BIN
      ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/airballoon_base.png
  85. BIN
      ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/airballoon_upper.png
  86. BIN
      ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/birch.png
  87. BIN
      ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/farm.png
  88. BIN
      ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/flag.png
  89. BIN
      ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/garage.png
  90. BIN
      ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/house.png
  91. BIN
      ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/kid/lost.png
  92. BIN
      ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/kid/run.png
  93. BIN
      ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/kid/walk.png
  94. BIN
      ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/place_a.png
  95. BIN
      ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/place_b.png
  96. BIN
      ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/rock.png
  97. BIN
      ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/school.png
  98. BIN
      ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/sign.png
  99. BIN
      ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/tractor/frame-0.png
  100. 0 0
      ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/tractor/frame-1.png

+ 1 - 1
db/install.php

@@ -37,7 +37,7 @@ function xmldb_iassign_install() {
     // iVProg 1.0.20190717 - HTML5 - 2020
     array_combine(
      array('name', 'url', 'version', 'type', 'description', 'extension', 'file_jar', 'file_class', 'width', 'height', 'enable', 'timemodified', 'author', 'timecreated', 'evaluate'), 
-     array('iVProg4', 'http://www.usp.br/line/ivprog/', '1.0.20190717', 'HTML5', '{"en":"Visual Interactive Programming on the Internet (HTML)","pt_br":"Programação visual interativa na Internet"}', 'ivph', 'ilm/iVProg/1.0.20200121/ivprog/', 'index.html', 800, 600, 1, time(), $USER->id, time(), 1)),
+     array('iVProg', 'http://www.usp.br/line/ivprog/', '1.0.20190717', 'HTML5', '{"en":"Visual Interactive Programming on the Internet (HTML)","pt_br":"Programação visual interativa na Internet"}', 'ivph', 'ilm/iVProg/1.0.20190717/ivprog/', 'index.html', 800, 600, 1, time(), $USER->id, time(), 1)),
     // fractions 0.1.2017.11.22 - HTML5
     array_combine(
      array('name', 'url', 'version', 'type', 'description', 'extension', 'file_jar', 'file_class', 'width', 'height', 'enable', 'timemodified', 'author', 'timecreated', 'evaluate'),

+ 4 - 3
db/upgrade.php

@@ -427,7 +427,7 @@ function xmldb_iassign_upgrade ($oldversion) {
 
     } // if ($oldversion < 2018031000)
 
-    if ($oldversion < 2019112217) {
+    if ($oldversion < 2019112219) {
 
       $table = new xmldb_table('iassign_submission');
       $field = new xmldb_field('previous_grade', XMLDB_TYPE_FLOAT, null, null, null, null, null);
@@ -534,11 +534,12 @@ function xmldb_iassign_upgrade ($oldversion) {
 
         if ($not_found != '') {
           echo '<div class="alert alert-warning alert-block fade in " role="alert" data-aria-autofocus="true" tabindex="0" >';
-          echo 'A atualização foi finalizada com sucesso! Porém, alguns dos iMA instalados anteriormente em sua versão local, não estão disponíveis na distribuição atual do iAssign:';
+          echo get_string('upgrade_alert_iMA_msg', 'iassign');
           echo '<ul style="margin-top: 1rem;">';
           echo $not_found;
           echo '</ul>';
-          echo 'Esses iMA foram desabilitados, para evitar problemas de usabilidade. <br> Solução: adicione novamente esses iMA ao iAssign, na área <a href="'.new moodle_url('/admin/settings.php?section=modsettingiassign').'">administrativa do plugin</a>.';
+          echo get_string('upgrade_alert_iMA_solution_pt1', 'iassign');
+          echo '<a href="'.new moodle_url('/admin/settings.php?section=modsettingiassign').'">' . get_string('upgrade_alert_iMA_solution_pt2', 'iassign') . '</a>.';
           echo '</div>';
         }
 

BIN
ilm/iFractions/0.1.20200221/ifractions/assets/img/flag/ITAL.png


BIN
ilm/iFractions/0.1.20200221/ifractions/assets/img/game/1-left-subs.png


BIN
ilm/iFractions/0.1.20200221/ifractions/assets/img/game/1-right-nosubs.png


BIN
ilm/iFractions/0.1.20200221/ifractions/assets/img/game/2-left-subs.png


BIN
ilm/iFractions/0.1.20200221/ifractions/assets/img/game/2-right-nosubs.png


BIN
ilm/iFractions/0.1.20200221/ifractions/assets/img/game/3-left-subs.png


BIN
ilm/iFractions/0.1.20200221/ifractions/assets/img/game/3-right-nosubs.png


BIN
ilm/iFractions/0.1.20200221/ifractions/assets/img/game/4-left-subs.png


BIN
ilm/iFractions/0.1.20200221/ifractions/assets/img/game/4-right-nosubs.png


BIN
ilm/iFractions/0.1.20200221/ifractions/assets/img/game/5.png


BIN
ilm/iFractions/0.1.20200221/ifractions/assets/img/game/fases projeto 1.0.psd


BIN
ilm/iFractions/0.1.20200221/ifractions/assets/img/game/fases projeto 2.0.psd


BIN
ilm/iFractions/0.1.20200221/ifractions/assets/img/kid/walk.png


BIN
ilm/iFractions/0.1.20200221/ifractions/assets/img/menu/audio_48x48.png


+ 0 - 26
ilm/iFractions/0.1.20200221/ifractions/assets/languages/en_US.json

@@ -1,26 +0,0 @@
-{
-    "loading":"LOADING",
-    "title":"Fractions",
-    "menu_title":"SELECT GAME",
-    "difficulty": "Difficulty",
-    "level": "Level",
-    "game_menu_title": "SELECT OPERATION AND DIFFICULTY",
-    "good_job": "Good Job",
-    "retry": "Try again",
-    "menu_world" : "LANGUAGE SELECTION",
-    "menu_list" : "MAIN MENU",
-    "menu_back" : "GO BACK",
-    "menu_help" : "SEE SOLUTION",
-    "circle_name": "Circles",
-    "square_name" :"Quadrangles",
-    "label_name": "labels",
-    "mode_name": "MODE",
-    "with_name": "WITH",
-    "without_name": "WITHOUT",
-    "insert_name" : "ENTER YOUR NAME",
-    "ready" : "READY",
-    "welcome" : "Welcome",
-    "error_msg" :  "You should select a smaller portion than it's full size",
-    "empty_name" : "You forgot to type your name",
-    "audio" : "AUDIO"
-}

+ 0 - 26
ilm/iFractions/0.1.20200221/ifractions/assets/languages/es_PE.json

@@ -1,26 +0,0 @@
-{
-    "loading":"CARGANDO",
-    "title":"Fracciones",
-    "menu_title":"SELECCIONE UN JUEGO",
-    "difficulty": "Dificultad",
-    "level": "Nivel",
-    "game_menu_title": "SELECCIONA LA OPERACION Y DIFICULTAD",
-    "good_job": "Bien hecho",
-    "retry": "Inténtalo de nuevo",
-    "menu_world" : "SELECCION DE IDIOMA",
-    "menu_list" : "MENU PRINCIPAL",
-    "menu_back" : "REGRESAR",
-    "menu_help" : "VER SOLUCION",
-    "circle_name": "Circulos",
-    "square_name" :"Cuadrilateros",
-    "label_name": "etiquetas",
-    "mode_name": "MODO",
-    "with_name": "CON",
-    "without_name": "SIN",
-    "insert_name" : "INGRESA TU NOMBRE",
-    "ready" : "LISTO",
-    "welcome" : "Hola que tal",
-    "error_msg" : "Debes seleccionar una porción más pequeña que su tamaño completo",
-    "empty_name" : "Usted ha olvidado de escribir su nombre",
-    "audio" : "AUDIO"
-}

+ 0 - 26
ilm/iFractions/0.1.20200221/ifractions/assets/languages/fr_FR.json

@@ -1,26 +0,0 @@
-{
-    "loading":"CHARGEMENT",
-    "title":"Fractions",
-    "menu_title":"SÉLECTIONNER UN JEU",
-    "difficulty": "Difficulté",
-    "level": "Niveau",
-    "game_menu_title": "OPERATION SELECT ET DIFFICULTÉ",
-    "good_job": "Bon travail",
-    "retry": "Réessayer",
-    "menu_world" : "SÉLECTION DE LA LANGUE",
-    "menu_list" : "MENU PRINCIPAL",
-    "menu_back" : "RETOUR",
-    "menu_help" : "VIEW SOLUTION",
-    "circle_name": "Circles",
-    "square_name" :"Quadrangles",
-    "label_name": "Étiquettes",
-    "mode_name": "MODE",
-    "with_name": "AVEC",
-    "without_name": "SANS",
-    "insert_name" : "ENTREZ VOTRE NOM",
-    "ready" : "PRET",
-    "welcome" : "Salut",
-    "error_msg" : "Vous devriez choisir une portion plus petite que sa taille totale",
-    "empty_name" : "Vous avez oublié de taper votre nom",
-    "audio" : "AUDIO"
-}

+ 0 - 26
ilm/iFractions/0.1.20200221/ifractions/assets/languages/it_IT.json

@@ -1,26 +0,0 @@
-{
-    "loading":"CARICANDO",
-    "title":"Frazioni",
-    "menu_title":"SELEZIONA UN GRIOCO",
-    "difficulty": "Difficoltá",
-    "level": "Livello",
-    "game_menu_title": "SELEZIONARE UNA OPERAZIONE E UNA DIFFICOLTÁ",
-    "good_job": "Buon lavoro!",
-    "retry": "Tenta di nuovo!",
-    "menu_world" : "SELEZIONARE IDIOMA",
-    "menu_list" : "MENÚ PRINCIPALE",
-    "menu_back" : "INDIETRO",
-    "menu_help" : "GUARDA SOLUZIONE",
-    "circle_name": "Cerchi",
-    "square_name" :"Quadrilateri",
-    "label_name": "legenda",
-    "model_name": "MODO",
-    "with_name": "CON",
-    "without_name": "SENZA",
-    "insert_name" : "SCRIVI IL TUO NOME",
-    "ready" : "OK",
-    "welcome" : "Ciao",
-    "error_msg" : "Devi scegliere una porzione minore della grandezza totale",
-    "empty_name" : "Ti sei dimenticato di digitare il tuo nome",
-    "audio" : "AUDIO" 
-}

+ 0 - 26
ilm/iFractions/0.1.20200221/ifractions/assets/languages/pt_BR.json

@@ -1,26 +0,0 @@
-{
-    "loading":"CARREGANDO",
-    "title":"Frações",
-    "menu_title":"SELECIONE UM JOGO",
-    "difficulty": "Dificuldade",
-    "level": "Nível",
-    "game_menu_title": "SELECIONAR OPERAÇÃO E DIFICULDADE",
-    "good_job": "Bom trabalho!",
-    "retry": "Tente novamente!",
-    "menu_world" : "SELECIONAR IDIOMA",
-    "menu_list" : "MENU PRINCIPAL",
-    "menu_back" : "VOLTAR",
-    "menu_help" : "VER SOLUÇÃO",
-    "circle_name": "Círculos",
-    "square_name" :"Quadriláteros",
-    "label_name": "legenda",
-    "model_name": "MODO",
-    "with_name": "COM",
-    "without_name": "SEM",
-    "insert_name" : "DIGITE SEU NOME",
-    "ready" : "PRONTO",
-    "welcome" : "Olá",
-    "error_msg" : "Você deve selecionar uma porção menor que o seu tamanho total",
-    "empty_name" : "Você esqueceu de digitar seu nome",
-    "audio" : "ÁUDIO" 
-}

+ 3 - 3
ilm/iFractions/0.1.20200221/ifractions/css/bootstrap.css

@@ -263,8 +263,8 @@ th {
 @font-face {
   font-family: 'Glyphicons Halflings';
 
-  src: url('..assets/fonts/glyphicons-halflings-regular.eot');
-  src: url('..assets/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('..assets/fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('..assets/fonts/glyphicons-halflings-regular.woff') format('woff'), url('..assets/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('..assets/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
+  src: url('../fonts/glyphicons-halflings-regular.eot');
+  src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
 }
 .glyphicon {
   position: relative;
@@ -6757,4 +6757,4 @@ button.close {
     display: none !important;
   }
 }
-/*# sourceMappingURL=bootstrap.css.map */
+/*# sourceMappingURL=bootstrap.css.map */

File diff suppressed because it is too large
+ 1 - 1
ilm/iFractions/0.1.20200221/ifractions/css/bootstrap.css.map


File diff suppressed because it is too large
+ 1311 - 0
ilm/iFractions/0.1.20200221/ifractions/css/jquery-ui.css


File diff suppressed because it is too large
+ 1 - 0
ilm/iFractions/0.1.20200221/ifractions/css/jquery.modal.min.css


+ 187 - 0
ilm/iFractions/0.1.20200221/ifractions/eindex.php

@@ -0,0 +1,187 @@
+<!DOCTYPE html>  
+<html>
+    <head>  
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+        <title> Fractions </title>
+        <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
+        <script type="text/javascript" src="js/phaser.min.js"></script>
+        <script type="text/javascript" src="js/boot.js"></script>
+        <script type="text/javascript" src="js/menu.js"></script>
+        <script type="text/javascript" src="js/circleOne.js"></script>
+        <script type="text/javascript" src="js/squareOne.js"></script>
+        <script type="text/javascript" src="js/squareTwo.js"></script>
+    </head>
+
+    <body>
+
+    <div class="container">
+    	<div class="clearfix"></div>
+        <div class="panel panel-primary">
+          <div class="panel-heading">FRACTIONS GAME</div>
+          <div class="panel-body">
+            <center>
+                <div id="fractions-game" style="padding: 0 auto 0 auto;"></div>
+            </center>
+          </div>
+        </div>
+        <div class="panel panel-info">
+          <div class="panel-heading">COOPERATION TEAM</div>
+          <div class="panel-body">
+            <center>
+                <ul>
+                  <li><strong>BRAZIL:</strong> Le&ocirc;nidas de Oliveira Brand&atilde;o (IME-USP)</li>
+                  <li><strong>PERU:</strong> Manuel Ibarra and Cristhian Serrano (EAPIIS-UNAMBA)</li>
+                  <li><strong>FRANCE:</strong> Jean-Marc (MOCAH-UPMC)</li>
+                </ul>
+            </center>
+          </div>
+        </div>
+        <div class="panel panel-default">
+          <div class="panel-heading">BASED ON</div>
+          <div class="panel-body">
+            <center>
+                <ul>
+                  <li><strong>iLM </strong>(interactive Learning Modules) </li>
+                  <li><strong>Six facets of Serious Game Design</strong>:<br>
+Pedagogical Objectives; Domain Simulation; Interactions with the Simulation; Problems and Progression; Decorum and Conditions of Use.
+</li>
+                </ul>
+            </center>
+          </div>
+        </div>
+        <div class="panel panel-danger">
+          <div class="panel-heading">TECHNOLOGY</div>
+          <div class="panel-body">
+            <center>
+                <ul>
+                  <li> We used <strong>HTML5</strong>, <strong>CSS</strong> and the <strong>Javascript</strong> Library <a href="http://phaser.io/" target="_blank"><strong>Phaser.io</strong></a> </li>
+                </ul>
+            </center>
+          </div>
+        </div>
+    </div>
+        
+    </body>
+
+    
+    <?php /* retrieving parameters */ 
+        
+    $do = $_REQUEST['do'];
+    $lang = $_REQUEST['language'];
+    $shape = $_REQUEST['shape'];
+    $type = $_REQUEST['mode'];
+    $posit = 0;
+    $opera = $_REQUEST['operator'];
+    $diffi = $_REQUEST['difficulty'];
+    $label = $_REQUEST['label'];
+
+    //?do=play&language=es_PE&shape=Circle&mode=A&operator=Plus&difficulty=1&label=true
+    
+    if(!isset($do)){
+    ?>
+    
+    <script type="text/javascript">
+        // Initialize the game
+        var game = new Phaser.Game(900, 600, Phaser.CANVAS, 'fractions-game');
+        
+        hip = "<?=$_SERVER['REMOTE_ADDR']?>"; //Host ip
+        name = ""; //player name
+        lang = ""; //language
+        var timer, totalTime;
+            // Game One 
+         onePosition = 0; //Map position
+         oneMove = false; //Move to next position
+         oneDifficulty = 0; //From one to five 
+         oneOperator= ""; //Plus; Minus; Mixed
+         oneLabel= false; //Show block label
+         oneShape = ""; //Circle; square
+         oneType = ""; // A - Place distance; B - Select blocks
+         oneMenu = true;
+            // Game Two
+         twoPosition = 0; //Map position
+         twoMove = false; //Move to next position
+         twoDifficulty = 0; //From one to five 
+         twoOperator= ""; //Plus; Minus; Mixed
+         twoLabel= false; //Show block label
+         twoShape = ""; //Circle; square
+         twoType = ""; // A - Normal position; B - Random position
+         twoMenu= true;
+        
+        //adding game states (scenes)
+        game.state.add('boot', bootState);  
+        game.state.add('load', loadState); 
+        game.state.add('name', nameState);
+        game.state.add('menu', menuState);  
+        
+        game.state.add('menuCOne', menuCircleOne);
+        game.state.add('mapCOne', mapCircleOne);
+        game.state.add('gameCOne', gameCircleOne);
+        game.state.add('endCOne', endCircleOne);
+                
+        game.state.add('menuSOne', menuSquareOne);
+        game.state.add('mapSOne', mapSquareOne);
+        game.state.add('gameSOne', gameSquareOne);
+        game.state.add('endSOne', endSquareOne);
+        
+        game.state.add('menuSTwo', menuSquareTwo);
+        game.state.add('mapSTwo', mapSquareTwo);
+        game.state.add('gameSTwo', gameSquareTwo);
+        game.state.add('endSTwo', endSquareTwo);
+        
+        //starting to boot game
+        game.state.start('boot');
+    </script>
+    <? } else if($do=="play"){ ?>
+    
+    <script type="text/javascript">
+        // Initialize the game
+        var game = new Phaser.Game(900, 600, Phaser.CANVAS, 'fractions-game');
+        
+        var hip = "<?=$_SERVER['REMOTE_ADDR']?>"; //Host ip
+        var name = "";
+        var lang = "<?=$lang?>";
+        var timer, totalTime;
+        
+        var onePosition = <?=$posit?>;
+        var oneMove = true;
+        var oneDifficulty = <?=$diffi?>;
+        var oneOperator = "<?=$opera?>";
+        var oneLabel = <?=$label?>;
+        var oneShape = "<?=$shape?>";
+        var oneType = "<?=$type?>";
+        var oneMenu = false;
+        
+        var twoPosition = 0; //Map position
+        var twoMove = false; //Move to next position
+        var twoDifficulty = 0; //From one to five 
+        var twoOperator= ""; //Plus; Minus; Mixed
+        var twoLabel= false; //Show block label
+        var twoShape = ""; //Circle; square
+        var twoType = ""; // A - Normal position; B - Random position
+        var twoMenu= true;
+        
+        //adding game states (scenes) 
+        game.state.add('boot', bootState); 
+        game.state.add('load', loadState); 
+        game.state.add('name', nameState);
+        
+        game.state.add('menuCOne', menuCircleOne);
+        game.state.add('mapCOne', mapCircleOne);
+        game.state.add('gameCOne', gameCircleOne);
+        game.state.add('endCOne', endCircleOne);
+                
+        game.state.add('menuSOne', menuSquareOne);
+        game.state.add('mapSOne', mapSquareOne);
+        game.state.add('gameSOne', gameSquareOne);
+        game.state.add('endSOne', endSquareOne);
+        
+        game.state.add('menuSTwo', menuSquareTwo);
+        game.state.add('mapSTwo', mapSquareTwo);
+        game.state.add('gameSTwo', gameSquareTwo);
+        game.state.add('endSTwo', endSquareTwo);
+        
+        //starting to load game
+        game.state.start('load');
+    </script>
+    <? } ?>
+</html>

ilm/iFractions/0.1.20200221/ifractions/assets/fonts/glyphicons-halflings-regular.eot → ilm/iFractions/0.1.20200221/ifractions/fonts/glyphicons-halflings-regular.eot


ilm/iFractions/0.1.20200221/ifractions/assets/fonts/glyphicons-halflings-regular.svg → ilm/iFractions/0.1.20200221/ifractions/fonts/glyphicons-halflings-regular.svg


ilm/iFractions/0.1.20200221/ifractions/assets/fonts/glyphicons-halflings-regular.ttf → ilm/iFractions/0.1.20200221/ifractions/fonts/glyphicons-halflings-regular.ttf


ilm/iFractions/0.1.20200221/ifractions/assets/fonts/glyphicons-halflings-regular.woff → ilm/iFractions/0.1.20200221/ifractions/fonts/glyphicons-halflings-regular.woff


ilm/iFractions/0.1.20200221/ifractions/assets/fonts/glyphicons-halflings-regular.woff2 → ilm/iFractions/0.1.20200221/ifractions/fonts/glyphicons-halflings-regular.woff2


+ 729 - 89
ilm/iFractions/0.1.20200221/ifractions/index.html

@@ -1,108 +1,748 @@
-
-<!DOCTYPE html>
-
+<!DOCTYPE html>  
 <html>
-    
     <head>  
-
         <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
         <title> iFractions </title>
         <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
-        
-        <script src="js/phaser.min.js"></script>
-        
-        <script type="text/javascript" src="js/preMenu.js"></script>
+        <link rel="stylesheet" type="text/css"  href="css/jquery-ui.css">
+        <link rel="stylesheet" type="text/css"  href="css/jquery.modal.min.css">
+        <script type="text/javascript" src="js/phaser.min.js"></script>
+        <script type="text/javascript" src="js/jquery.js"></script>
+        <script type="text/javascript" src="js/jquery-ui.js"></script>
+        <script type="text/javascript" src="js/jquery.modal.min.js"></script>
+        <script type="text/javascript" src="js/boot.js"></script>
         <script type="text/javascript" src="js/menu.js"></script>
-        <script type="text/javascript" src="js/map.js"></script>
         <script type="text/javascript" src="js/circleOne.js"></script>
         <script type="text/javascript" src="js/squareOne.js"></script>
         <script type="text/javascript" src="js/squareTwo.js"></script>
-        <script type="text/javascript" src="js/boot.js"></script>
 
+        <script>
+            function getParameterByName(name) {
+                var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);
+                return match ? decodeURIComponent(match[1].replace(/\+/g, ' ')) : null;
+            }
+            function getAnswer() {
+                if (iLMparameters.iLM_PARAM_SendAnswer == 'false') {
+                    var str = "{"
+                            + '"shape": "' + jogo.shape
+                            + '", "modo": "' + jogo.modo
+                            + '", "label": "' + jogo.label
+                            + '", "operator": "' + jogo.operator
+                            + '", "difficulty": "' + jogo.difficulty
+                            + '", "num": "' + jogo.num
+                            + '", "results": {';
+                    for (j = 0; j < iterator; j++) {
+                        str += '"' + (j + 1) + '": { "phase": "' + (j + 1)
+                                + '", "hits": "' + hits[j]
+                                + '", "errors": "' + errors[j]
+                                + '", "start": "' + start[j]
+                                + '", "end": "' + end[j]
+                                + '" }' + ((j + 1 < iterator) ? "," : "");
+                    }
+                    str += "}}";
+                    return str;
+                } else {
+                    console.log("getAnswer:: called");
+                    if (modulo < 1) {
+                        alert(words.error_module);
+                        return x;
+                    }
+                    if (difficulty < 1) {
+                        alert(words.error_difficulty);
+                        return x;
+                    }
+                    if (num < 5) {
+                        return '{'
+                                + '"shape": "' + (modules_names[modulo].split(",")[0] === words.square_name ? "Square" : "Circle")
+                                + '", "modo": "' + modos[modulo]
+                                + '", "label": "' + labels[modulo]
+                                + '", "operator": "' + (operation == 1 ? "Plus" : (operation == 2 ? "Minus" : (operation == 3 ? "Mixed" : "Equals")))
+                                + '", "difficulty": "' + difficulty
+                                + '", "num": "' + num
+                                + '"}';
+                    } else {
+                        return '{'
+                                + '"shape": "' + (modules_names[modulo].split(",")[0] === words.square_name ? "Square" : "Circle")
+                                + '", "modo": "' + (operation == 1 ? "A" : (operation == 2 ? "B" : "C"))
+                                + '", "label": "' + labels[modulo]
+                                + '", "operator": "' + (operation == 1 ? "Plus" : (operation == 2 ? "Minus" : (operation == 3 ? "Mixed" : "Equals")))
+                                + '", "difficulty": "' + difficulty
+                                + '", "num": "' + num
+                                + '"}';
+                    }
+                }
+            }
+            function getEvaluation() {
+                console.log("getEvaluation:: called");
+                getEvaluationCallback(1); // verificar com o professor:: uma fórmula para compor a nota do aluno
+            }
+            function getEvaluationCallback(nota) {
+                console.log("getEvaluationCallback:: called");
+                if (iLMparameters.iLM_PARAM_SendAnswer == 'false') {
+                    parent.getEvaluationCallback(nota);
+                }
+            }
+            var iLMparameters = {
+                iLM_PARAM_ServerToGetAnswerURL: getParameterByName("iLM_PARAM_ServerToGetAnswerURL"),
+                iLM_PARAM_SendAnswer: getParameterByName("iLM_PARAM_SendAnswer"),
+                iLM_PARAM_AssignmentURL: getParameterByName("iLM_PARAM_AssignmentURL"),
+                iLM_PARAM_Assignment: getParameterByName("iLM_PARAM_Assignment"),
+                lang: getParameterByName("lang")
+            };
+            function trackAction(action) {
+                $.post(iLMparameters.iLM_PARAM_ServerToGetAnswerURL + "&track=1", {trackingData: "html=1;" + action}, function (d) {});
+            }
+        </script>
         <style>
-        	#text-field-div{
-			  position: absolute;
-			  top: 300px;
-			  margin-left: 340px;
-			  visibility: hidden;
-			}
-
-			input[type=text] {
-			  background-color: rgb(239, 245, 245);
-			  padding: 15px 40px;
-			  box-sizing: border-box;
-			  border: 3px solid #ccc;
-			  font-size: 44px;
-			  font-family: Arial;
-			  color: rgb(0, 0, 0);
-			  text-align: center;
-			}
-			
-        </style>
+            .input-hidden {
+                position: absolute;
+                left: -9999px;
+            }
+
+            input[type=radio]:checked + label>img {
+                border: 1px solid #fff;
+                box-shadow: 0 0 3px 3px #090;
+                filter: grayscale(0%);
+            }
 
+            input[type=radio] + label>img {
+                width: 80px;
+                height: 80px;
+                margin-left: 5px;
+                filter: grayscale(100%);
+                transition: 500ms all;
+            }
+            #form-create img:hover {
+                filter: grayscale(0%);
+            }
+            #select_module, #select_difficulty, #options_summary_title {
+                text-align: left;
+                padding: 15px;
+            }
+            #options_module, #options_diff {
+                text-align: left;
+                padding-left: 40px;
+            }
+            .img_difficulty {
+                width: 80px !important;
+                margin-right: 20px;
+                margin-top: 20px;
+            }
+            #results-title {
+                font-size: 140%;
+                border-bottom: 2px solid #c9d1dd;
+                padding-bottom: 5px;
+            }
+            #results-image, #results-info {
+                float: left;
+                margin-top: 10px;
+            }
+            #results-image img {
+                width: 80px;
+                height: 80px;
+            }
+            #results-info {
+                margin-left: 15px;
+                margin-top: 20px;
+                font-size: 120%;
+            }
+            #bl {
+                width: 100%; 
+                height: 105px;
+                border-bottom: 2px solid #c9d1dd;
+            }
+            .results-levels {
+                border-bottom: 2px solid #c9d1dd;
+                padding: 10px;
+            }
+            .results-levels img {
+                width: 60px;
+            }
+            .numphase {
+                float: left;
+                margin-top: -50px;
+                margin-left: 25px;
+                position: absolute;
+                z-index: 9999;
+                color: white;
+                font-size: 20px;
+                font-weight: bold;
+            }
+            .panel-body, .panel-primary {
+                padding: 0;
+                border: none;
+                height: auto;
+                width: auto;
+                margin: 0;
+            }
+            .results-levels-item {
+                margin-top: -70px;
+                margin-left: 75px;
+            }
+            .container {    
+                width: auto;
+                padding: 0;
+                margin: 0;
+            }
+            .close-modal {
+                margin: 10px;
+            }
+            .modal-title {
+                text-align: center;
+                font-size: 24px;
+                font-weight: bold;
+            }
+            .modal-geral {
+                font-size: 16px;
+                margin: 10px;
+            }
+            .modal-coop {
+                padding: 5px;
+                border: 1px solid #4286f4;
+                background-color: #c5d9f9;
+                border-radius: 10px 10px 0 0;
+                margin-top: 10px;
+                font-weight: bold;
+            }
+            .modal-coop-content {
+                border: 1px solid #4286f4;
+                margin-top: -1px;
+                padding: 5px;
+                border-radius: 0 0 10px 10px;
+            }
+            .modal-based {
+                padding: 5px;
+                border: 1px solid #ff5e5e;
+                background-color: #f9dbdb;
+                border-radius: 10px 10px 0 0;
+                margin-top: 10px;
+                font-weight: bold;
+            }
+            .modal-based-content {
+                border: 1px solid #ff5e5e;
+                margin-top: -1px;
+                padding: 5px;
+                border-radius: 0 0 10px 10px;
+            }
+            .modal-tech {
+                padding: 5px;
+                border: 1px solid #109b0d;
+                background-color: #b6ffb5;
+                border-radius: 10px 10px 0 0;
+                margin-top: 10px;
+                font-weight: bold;
+            }
+            .modal-tech-content {
+                border: 1px solid #109b0d;
+                margin-top: -1px;
+                padding: 5px;
+                border-radius: 0 0 10px 10px;
+            }
+            .results-levels:hover {
+                background: #f5f5f5;
+            }
+
+        </style>
     </head>
 
     <body>
 
-	    <div class="container">
-
-	    	<div class="clearfix"></div>
-	        
-	        <div class="panel panel-primary">
-	        <!--  <div class="panel-heading">iFractions :: Interactive Fractions Game</div> -->
-	          <div class="panel-heading">IFRACTIONS GAME</div>
-	          <div class="panel-body">
-	            <center>
-	            	<!-- fractions-game é o id que puxa o canvas do phaser -->
-	                <div id="fractions-game" style="padding: 0 auto 0 auto;"></div>
-	            </center>
-	          </div>
-	        </div>
-	        
-	        <div class="panel panel-info">
-	          <div class="panel-heading">TEAM</div>
-	          <div class="panel-body">
-	            <center>
-	                <ul>
-	                  <li><strong>BRAZIL:</strong> Le&ocirc;nidas de Oliveira Brand&atilde;o (IME-USP)</li>
-	                  <li><strong>PERU:</strong> Manuel Ibarra and Cristhian Serrano (EAPIIS-UNAMBA)</li>
-	                  <li><strong>FRANCE:</strong> Jean-Marc (MOCAH-UPMC)</li>
-	                </ul>
-	            </center>
-	          </div>
-	        </div>
-	        
-	        <div class="panel panel-default">
-	          <div class="panel-heading">BASED ON</div>
-	          <div class="panel-body">
-	            <center>
-	                <ul>
-	                  <li><strong>iLM </strong>(interactive Learning Modules) </li>
-	                  <li><strong>Six facets of Serious Game Design</strong>: Pedagogical Objectives; Domain Simulation; Interactions with the Simulation;<br>Problems and Progression; Decorum and Conditions of Use.</li>
-	                </ul>
-	            </center>
-	          </div>
-	        </div>
-	        
-	        <div class="panel panel-danger">
-	          <div class="panel-heading">TECHNOLOGY</div>
-	          <div class="panel-body">
-	            <center>
-	                <ul>
-	                  <li> We used <strong>HTML5</strong>, <strong>CSS</strong> and the <strong>Javascript</strong> library <a href="http://phaser.io/" target="_blank"><strong>Phaser.io</strong></a> </li>
-	                </ul>
-	            </center>
-	          </div>
-	        </div>
-
-	        <div id="text-field-div">
-				<form onsubmit="return false">
-					<input type="text" id="name_id" value="" size="13" maxlength="40">
-				</form>
-			</div>
-
-	    </div>
+        <div class="container">
+            <div class="clearfix"></div>
+            <div class="panel panel-primary">
+                <!--<div class="panel-heading">FRACTIONS GAME</div>-->
+                <div class="panel-body">
+                    <center>
+                        <div id="fractions-game" style="padding: 0 auto 0 auto;">
+                            <div id="form-create" style="display: none;">
+                                <script>
+                                    // 
+                                    var words = [];
+                                    var modules_names = [''];
+                                    var total_levels = [0, 2, 2, 3, 3, 3, 2, 2, 3, 3];
+                                    var levels = [0, 3, 3, 5, 5, 5, 3, 3, 5, 5];
+                                    var modos = ['', 'A', 'A', 'A', 'A', 'C', 'B', 'B', 'B', 'B'];
+                                    var labels = [false, true, false, true, false, false, true, false, true, false];
+                                    var operation_img = [''];
+                                    var operation;
+                                    var difficulty = 0;
+                                    var modulo = 0;
+                                    var num;
+                                    var redir = true;
+
+                                    var url_lang;
+                                    if (iLMparameters.lang == "en")
+                                        url_lang = "en_US";
+                                    if (iLMparameters.lang == "pt")
+                                        url_lang = "pt_BR";
+                                    if (iLMparameters.lang == "fr")
+                                        url_lang = "fr_FR";
+                                    if (iLMparameters.lang == "es")
+                                        url_lang = "es_PE";
+
+                                    $.getJSON("resource/lang/" + url_lang + ".json", function (data) {
+                                        $.each(data, function (key, val) {
+                                            words[key] = val;
+                                        });
+                                        $("#select_module").html(words.select_module + ":");
+                                        $("#select_difficulty").html(words.select_operation + ":");
+                                        $("#options_summary_title").html(words.options_summary + ":");
+                                        $("#options_module").html(words.options_module + ":");
+                                        $("#options_diff").html(words.options_difficulty + ":");
+
+                                        modules_names[1] = words.square_name + ", " + words.mode_name + " A, " + words.with_name + " " + words.label_name;
+                                        modules_names[2] = words.square_name + ", " + words.mode_name + " A, " + words.without_name + " " + words.label_name;
+                                        modules_names[3] = words.circle_name + ", " + words.mode_name + " A, " + words.with_name + " " + words.label_name;
+                                        modules_names[4] = words.circle_name + ", " + words.mode_name + " A, " + words.without_name + " " + words.label_name;
+                                        modules_names[5] = words.square_name + ", " + words.mode_name + " C, " + words.without_name + " " + words.label_name;
+                                        modules_names[6] = words.square_name + ", " + words.mode_name + " B, " + words.with_name + " " + words.label_name;
+                                        modules_names[7] = words.square_name + ", " + words.mode_name + " B, " + words.without_name + " " + words.label_name;
+                                        modules_names[8] = words.circle_name + ", " + words.mode_name + " B, " + words.with_name + " " + words.label_name;
+                                        modules_names[9] = words.circle_name + ", " + words.mode_name + " B, " + words.without_name + " " + words.label_name;
+
+                                        for (i = 1; i < modules_names.length; i++) {
+                                            $("#img_" + i).attr("title", modules_names[i]);
+                                        }
+
+                                        operation_img[1] = "help/arrow.png,help/arrow_2.png";
+                                        operation_img[2] = "help/arrow.png,help/arrow_2.png";
+                                        operation_img[3] = "help/arrow.png,help/arrow_2.png,help/double.png";
+                                        operation_img[4] = "help/arrow.png,help/arrow_2.png,help/double.png";
+                                        operation_img[5] = ",operator/equal.png,";
+                                        operation_img[6] = "help/arrow.png,help/arrow_2.png";
+                                        operation_img[7] = "help/arrow.png,help/arrow_2.png";
+                                        operation_img[8] = "help/arrow.png,help/arrow_2.png,help/double.png";
+                                        operation_img[9] = "help/arrow.png,help/arrow_2.png,help/double.png";
+
+                                    });
+
+                                    $(function () {
+                                        $(document).tooltip();
+                                    });
+
+                                    function show_operation_and_difficulty(opt) {
+
+                                        difficulty = 0;
+                                        $("#div_difficulty").css("display", "block");
+                                        $("#div_summary").css("display", "none");
+                                        $("#options_module").html(words.options_module + ":");
+                                        $("#options_diff").html(words.options_difficulty + ":");
+
+                                        modulo = parseInt(opt.value);
+                                        num = (modulo == 1 ? 1 : (modulo == 2 ? 2 : (modulo == 3 ? 1 : (modulo == 4 ? 2 : (modulo == 5 ? 5 : (modulo == 6 ? 3 : (modulo == 7 ? 4 : (modulo == 8 ? 3 : 4))))))));
+                                        var i;
+                                        var divs = "";
+                                        var id = 1;
+                                        for (i = 0; i < total_levels[modulo]; i++) {
+                                            var j;
+                                            divs += "<div style='margin-bottom: 20px;'>";
+                                            if (operation_img[modulo].split(",")[i] !== '') {
+                                                divs += "<img class='img_difficulty' src='resource/img/global/" + operation_img[modulo].split(",")[i] + "'>";
+                                            } else {
+                                                divs += "<div class='img_difficulty' style='display:inline;'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</div>";
+                                            }
+
+                                            for (j = 0; j < levels[modulo]; j++) {
+                                                divs += "<input type='radio' name='difficulty' id='diff_" + id + "' class='input-hidden' value='" + i + "," + j + "' onchange='change_operation_and_difficulty(" + (i + 1) + "," + (j + 1) + ")' /> <label for='diff_" + id + "'> <img src='resource/img/global/dot.png' style='height: " + ((j + 1) * 20) + "px; width: 30px; margin-bottom: -" + (((levels[modulo] + 1) * 20) - ((j + 1) * 20)) + "px;' /> </label>";
+                                                id++;
+                                            }
+                                            divs += "</div>";
+                                        }
+                                        $("#options_difficulty").html(divs);
+                                        $("#options_module").html(words.options_module + ": " + modules_names[modulo]);
+                                    }
+
+                                    function change_operation_and_difficulty(op, dif) {
+                                        $("#div_summary").css("display", "block");
+                                        operation = parseInt(op);
+                                        difficulty = parseInt(dif);
+                                        var op_text = "";
+                                        switch (operation) {
+                                            case 1:
+                                                op_text = words.options_plus;
+                                                break;
+                                            case 2:
+                                                op_text = words.options_minus;
+                                                break;
+                                            case 3:
+                                                op_text = words.options_mixed;
+                                                break;
+                                            case 4:
+                                                op_text = words.options_equals;
+                                                break;
+                                        }
+                                        $("#options_diff").html(words.options_difficulty + ": " + op_text + ", " + difficulty);
+                                    }
+
+                                </script>
+
+                                <div id="select_module"></div>
+
+                                <input 
+                                    type="radio" name="emotion"
+                                    id="in1" class="input-hidden" onchange="show_operation_and_difficulty(this)" value="1" />
+                                <label for="in1">
+                                    <img id="img_1" src="resource/img/global/game/one-s.png" title=""  />
+                                </label>
+
+                                <input 
+                                    type="radio" name="emotion"
+                                    id="in2" class="input-hidden" onchange="show_operation_and_difficulty(this)" value="2" />
+                                <label for="in2">
+                                    <img id="img_2" src="resource/img/global/game/two-s.png" title="" />
+                                </label>
+
+                                <input 
+                                    type="radio" name="emotion"
+                                    id="in3" class="input-hidden" onchange="show_operation_and_difficulty(this)" value="3" />
+                                <label for="in3">
+                                    <img id="img_3" src="resource/img/global/game/one-c.png" title="" />
+                                </label>
+
+                                <input 
+                                    type="radio" name="emotion"
+                                    id="in4" class="input-hidden" onchange="show_operation_and_difficulty(this)" value="4" />
+                                <label for="in4">
+                                    <img id="img_4" src="resource/img/global/game/two-c.png" title="" />
+                                </label>
+
+                                <input 
+                                    type="radio" name="emotion"
+                                    id="in5" class="input-hidden" onchange="show_operation_and_difficulty(this)" value="5" />
+                                <label for="in5">
+                                    <img id="img_5" src="resource/img/global/game/five-s.png" title="" />
+                                </label>
+
+                                <input 
+                                    type="radio" name="emotion"
+                                    id="in6" class="input-hidden" onchange="show_operation_and_difficulty(this)" value="6" />
+                                <label for="in6">
+                                    <img id="img_6" src="resource/img/global/game/three-s.png" title="" />
+                                </label>
+
+                                <input 
+                                    type="radio" name="emotion"
+                                    id="in7" class="input-hidden" onchange="show_operation_and_difficulty(this)" value="7" />
+                                <label for="in7">
+                                    <img id="img_7" src="resource/img/global/game/four-s.png" title="" />
+                                </label>
+
+                                <input 
+                                    type="radio" name="emotion"
+                                    id="in8" class="input-hidden" onchange="show_operation_and_difficulty(this)" value="8" />
+                                <label for="in8">
+                                    <img id="img_8" src="resource/img/global/game/three-c.png" title="" />
+                                </label>
+
+                                <input 
+                                    type="radio" name="emotion"
+                                    id="in9" class="input-hidden" onchange="show_operation_and_difficulty(this)" value="9" />
+                                <label for="in9">
+                                    <img id="img_9" src="resource/img/global/game/four-c.png" title="" />
+                                </label>
+
+                                <div id="div_difficulty" style="display:none;">
+                                    <div id="select_difficulty"></div>
+                                    <div id="options_difficulty"></div>
+                                </div>
+
+                                <div id="div_summary" style="display:none;">
+                                    <div id="options_summary_title"></div>
+                                    <div id="options_summary_text">
+                                        <div id="options_module"></div>
+                                        <div id="options_diff"></div>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </center>
+
+                    <div id="results" style="display: none;">
+                        <div id="results-title"></div>
+                        <div id="bl">
+                            <div id="results-image"></div>
+                            <div id="results-info"></div>
+                        </div>
+                        <div id="results-details"></div>
+                    </div>
+                </div>
+            </div>
+            <!--
+            <div class="panel panel-info">
+                <div class="panel-heading">COOPERATION TEAM</div>
+                <div class="panel-body">
+                    <center>
+                        <ul>
+                            <li><strong>BRAZIL:</strong> Le&ocirc;nidas de Oliveira Brand&atilde;o (IME-USP)</li>
+                            <li><strong>PERU:</strong> Manuel Ibarra and Cristhian Serrano (EAPIIS-UNAMBA)</li>
+                            <li><strong>FRANCE:</strong> Jean-Marc (MOCAH-UPMC)</li>
+                        </ul>
+                    </center>
+                </div>
+            </div>
+            <div class="panel panel-default">
+                <div class="panel-heading">BASED ON</div>
+                <div class="panel-body">
+                    <center>
+                        <ul>
+                            <li><strong>iLM </strong>(interactive Learning Modules) </li>
+                            <li><strong>Six facets of Serious Game Design</strong>:<br>
+                                Pedagogical Objectives; Domain Simulation; Interactions with the Simulation; Problems and Progression; Decorum and Conditions of Use.
+                            </li>
+                        </ul>
+                    </center>
+                </div>
+            </div>
+            <div class="panel panel-danger">
+                <div class="panel-heading">TECHNOLOGY</div>
+                <div class="panel-body">
+                    <center>
+                        <ul>
+                            <li> We used <strong>HTML5</strong>, <strong>CSS</strong> and the <strong>Javascript</strong> Library <a href="http://phaser.io/" target="_blank"><strong>Phaser.io</strong></a> </li>
+                        </ul>
+                    </center>
+                </div>
+            </div>
+            -->
+        </div>
 
     </body>
 
-</html>
+
+
+    <script type="text/javascript">
+        // If SendAnswer (student) ::Igor
+        if (iLMparameters.iLM_PARAM_SendAnswer == 'false') {
+            // Initialize the game
+            var game = new Phaser.Game(900, 600, Phaser.CANVAS, 'fractions-game');
+            hip = "143.107.45.11"; //Host ip
+            /*name = ""; //player name*/
+            lang = ""; //language
+            var timer, totalTime;
+            // Game One 
+            onePosition = 0; //Map position
+            oneMove = false; //Move to next position
+            oneDifficulty = 0; //From one to five 
+            oneOperator = ""; //Plus; Minus; Mixed
+            oneLabel = false; //Show block label
+            oneShape = ""; //Circle; square
+            oneType = ""; // A - Place distance; B - Select blocks
+            oneMenu = true;
+            // Game Two
+            twoPosition = 0; //Map position
+            twoMove = false; //Move to next position
+            twoDifficulty = 0; //From one to five 
+            twoOperator = ""; //Plus; Minus; Mixed
+            twoLabel = false; //Show block label
+            twoShape = ""; //Circle; square
+            twoType = ""; // A - Normal position; B - Random position
+            twoMenu = true;
+            //adding game states (scenes)
+            game.state.add('boot', bootState);
+            game.state.add('load', loadState);
+            game.state.add('name', nameState);
+            game.state.add('menu', menuState);
+            game.state.add('menuCOne', menuCircleOne);
+            game.state.add('mapCOne', mapCircleOne);
+            game.state.add('gameCOne', gameCircleOne);
+            game.state.add('endCOne', endCircleOne);
+            game.state.add('menuSOne', menuSquareOne);
+            game.state.add('mapSOne', mapSquareOne);
+            game.state.add('gameSOne', gameSquareOne);
+            game.state.add('endSOne', endSquareOne);
+            game.state.add('menuSTwo', menuSquareTwo);
+            game.state.add('mapSTwo', mapSquareTwo);
+            game.state.add('gameSTwo', gameSquareTwo);
+            game.state.add('endSTwo', endSquareTwo);
+
+            lang = url_lang;
+
+            var jogo = [];
+            $.get(iLMparameters.iLM_PARAM_Assignment, function (d) {
+                if (d != null) {
+                    $.each(d, function (key, val) {
+                        jogo[key] = val;
+                    });
+                    register_start();
+                    if (jogo.hasOwnProperty('results')) {
+                        $("#fractions-game").css("display", "none");
+                        $("#results").css("display", "block");
+
+                        var results = [];
+                        $.each(jogo.results, function (key, val) {
+                            results[key] = val;
+                        });
+
+                        $("#results-title").html(words.results_title);
+                        $("#results-info").html(words.results_operation + ": " + jogo.operator + "<br>" + words.results_difficulty + ": " + jogo.difficulty);
+
+                        var dd = "";
+                        for (i = 1; i < results.length; i++) {
+                            dd += "<div class='results-levels'> <img src='resource/img/en_US/sign.png'><div class='numphase'>" + i + "</div> ";
+
+                            dd += "<div class='results-levels-item'>" + words.results_start + ": " + timeConverter(results[i].start);
+                            dd += " " + words.results_end + ": " + timeConverter(results[i].end);
+
+                            errors[i - 1] = results[i].errors;
+                            hits[i - 1] = results[i].hits;
+                            start[i - 1] = results[i].start;
+                            end[i - 1] = results[i].end;
+                            iterator++;
+
+                            var temp = results[i].end - results[i].start;
+                            dd += "<br>" + words.results_time + ": " + ("" + temp + "").toHHMMSS();
+                            dd += "<br>" + words.results_hits + ": " + results[i].hits;
+                            dd += "<br>" + words.results_errors + ": " + results[i].errors;
+                            //dd += "<br>" + words.results_grade + ": ";
+                            dd += "</div></div>";
+                        }
+                        $("#results-details").html(dd);
+                        var icone = "";
+                        if (jogo.shape == "Square") {
+                            if (jogo.modo == "A") {
+                                if (jogo.label == true) {
+                                    icone = "one-s.png";
+                                } else {
+                                    icone = "two-s.png";
+                                }
+                            }
+                            if (jogo.modo == "B") {
+                                if (jogo.label == true) {
+                                    icone = "three-s.png";
+                                } else {
+                                    icone = "four-s.png";
+                                }
+                            }
+                            if (jogo.modo == "C") {
+                                icone = "five-s.png";
+                            }
+                        } else {
+                            if (jogo.modo == "A") {
+                                if (jogo.label == true) {
+                                    icone = "one-c.png";
+                                } else {
+                                    icone = "two-c.png";
+                                }
+                            }
+                            if (jogo.modo == "B") {
+                                if (jogo.label == true) {
+                                    icone = "three-c.png";
+                                } else {
+                                    icone = "four-c.png";
+                                }
+                            }
+                        }
+
+                        $("#results-image").html("<img src='resource/img/global/game/" + icone + "'>");
+
+                    } else {
+                        //starting to boot game
+                        game.state.start('boot');
+                    }
+                } else
+                    alert('Erro: nao consegui ler o conteudo de ' + iLMparameters.iLM_PARAM_Assignment);
+            }, "json");
+
+            var conta = true;
+            var iterator = 0;
+            var hits = [0, 0, 0, 0];
+            var errors = [0, 0, 0, 0];
+            var start = [0, 0, 0, 0];
+            var end = [0, 0, 0, 0];
+
+        } else { // If Not SendAnswer (teacher) ::Igor
+            $("#form-create").css("display", "block");
+        }
+
+        function sendResults(final) {
+            var str = "{"
+                    + '"shape": "' + jogo.shape
+                    + '", "modo": "' + jogo.modo
+                    + '", "label": "' + jogo.label
+                    + '", "operator": "' + jogo.operator
+                    + '", "difficulty": "' + jogo.difficulty
+                    + '", "num": "' + jogo.num
+                    + '", "results": {';
+            for (j = 0; j < iterator; j++) {
+                str += '"' + (j + 1) + '": { "phase": "' + (j + 1)
+                        + '", "hits": "' + hits[j]
+                        + '", "errors": "' + errors[j]
+                        + '", "start": "' + start[j]
+                        + '", "end": "' + end[j]
+                        + '" }' + ((j + 1 < iterator) ? "," : "");
+            }
+            str += "}}";
+            console.log(str);
+            $.post(iLMparameters.iLM_PARAM_ServerToGetAnswerURL, {return_get_answer: 1, iLM_PARAM_ActivityEvaluation: final, iLM_PARAM_ArchiveContent: str}, function (d) {});
+        }
+
+        function register_start() {
+            var str = "{"
+                    + '"shape": "' + jogo.shape
+                    + '", "modo": "' + jogo.modo
+                    + '", "label": "' + jogo.label
+                    + '", "operator": "' + jogo.operator
+                    + '", "difficulty": "' + jogo.difficulty
+                    + '", "num": "' + jogo.num
+                    + '"';
+            str += "}";
+            $.post(iLMparameters.iLM_PARAM_ServerToGetAnswerURL, {iLM_PARAM_ActivityEvaluation: 0, iLM_PARAM_ArchiveContent: str}, function (d) {});
+        }
+
+        function finish_redirect() {
+            var t = (parent.document.location + " ").split("?")[0];
+            t += "?id=" + getParameterFromParent("id") + "&userid_iassign=" + getParameterFromParent("userid_iassign");
+            t += "&action=view&iassign_current=" + getParameterFromParent("iassign_current");
+            if (parent.document.location == t) {
+                parent.document.location.reload();
+            } else {
+                window.parent.location = t + "#iLM";
+            }
+        }
+
+        function timeConverter(UNIX_timestamp) {
+            var a = new Date(UNIX_timestamp * 1000);
+            var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
+            var year = a.getFullYear();
+            var month = months[a.getMonth()];
+            var date = a.getDate();
+            var hour = a.getHours();
+            var min = a.getMinutes();
+            var sec = a.getSeconds();
+            var time = date + ' ' + month + ' ' + year + ' ' + hour + ':' + min + ':' + sec;
+            return time;
+        }
+
+        String.prototype.toHHMMSS = function () {
+            var sec_num = parseInt(this, 10); // don't forget the second param
+            var hours = Math.floor(sec_num / 3600);
+            var minutes = Math.floor((sec_num - (hours * 3600)) / 60);
+            var seconds = sec_num - (hours * 3600) - (minutes * 60);
+
+            if (hours < 10) {
+                hours = "0" + hours;
+            }
+            if (minutes < 10) {
+                minutes = "0" + minutes;
+            }
+            if (seconds < 10) {
+                seconds = "0" + seconds;
+            }
+            return hours + ':' + minutes + ':' + seconds;
+        }
+        function getParameterFromParent(name) {
+            var match = RegExp('[?&]' + name + '=([^&]*)').exec(parent.document.location.search);
+            return match ? decodeURIComponent(match[1].replace(/\+/g, ' ')) : null;
+        }
+        function showInfo() {
+            var html = "<div class='modal-geral'> <div class='modal-title'>iFractions</div>"
+                    + "<div class='modal-coop'>Cooperation Team</div> <div class='modal-coop-content'> BRAZIL: Leônidas de Oliveira Brandão (IME-USP)<br>"
+                    + "PERU: Manuel Ibarra and Cristhian Serrano (EAPIIS-UNAMBA)<br> FRANCE: Jean-Marc (MOCAH-UPMC) </div>"
+                    + "<div class='modal-based'>Based on</div><div class='modal-based-content'> iLM (interactive Learning Modules)<br>"
+                    + "Six facets of Serious Game Design:<br>Pedagogical Objectives; Domain Simulation; Interactions with the Simulation; Problems and Progression; Decorum and Conditions of Use."
+                    + "</div> <div class='modal-tech'> Technology </div> <div class='modal-tech-content'> We used HTML5, CSS and the Javascript Library Phaser.io </div> </div>";
+            $(html).appendTo('body').modal();
+        }
+
+    </script>
+</html>

+ 277 - 303
ilm/iFractions/0.1.20200221/ifractions/js/boot.js

@@ -1,303 +1,277 @@
-// OUTRAS VARIAVEIS GLOBAIS
-
-				var passedLevels;
-
-				//premenu
-				var errorEmptyName;
-
-				//map
-				var kid, tractor;
-
-				//square 1 + circle 1
-				var startX;
-				var clicked, hideLabels, animate, checkCollide, result, hasFigure;
-				var detail;
-				var endPosition;
-				var fractionClicked, fractionIndex;
-				var blocks, maxBlocks, numBlocks, curBlock, blockDirection, blockDistance, blockLabel, blockSeparator; //blocks control
-
-				//square 1
-				var blockWidth, blockIndex;
-				var floorBlocks, floorIndex, floorCount, floorClicked, curFloor;
-				var move, moveCounter, moveEnd;
-				var arrow;
-				var arrowPlace;
-
-				//circle 1
-				var blockSize, blockAngle, blockTraceColor;
-				var fly, flyCounter, flyend; //flyvariables
-				var trace; //circle trace
-				var numPlus, endIndex;
-				var kid_walk, balloon, basket;
-				var balloonPlace;
-
-				//square 2
-				var sizeA, sizeB, valueA, valueB;
-				var clickA, clickB, animateA, animateB, result, animate, cDelay, eDelay;
-				var blocksA, blocksB, auxblqA, auxblqB;
-				var labelA, fractionA, separatorA, labelB, fractionB, separatorB;
-				var kidDirection, equals, counter, endCounter;
-				var xA, yA, xB, yB, blockW, blockH;
-
-	// INFO
-	var username; //player name
-	var lang; //language
-
-	// IMAGES
-	var beepSound, okSound, errorSound; //sounds
-	var okImg, errorImg;
-    var timer, totalTime;
-
-    // variaveis globais
-    var audioStatus = false; // turns game audio on/off
-    var firstTime = true; //if player has just oppened the game
-    var debugMode = false; //turns console messages for developers on/off (changeable only by code)
-
-    // game dimentions
-    var defaultWidth = 900;
-    var defaultHeight = 600;
-
-    // Initialize the game
-    var game = new Phaser.Game(
-        defaultWidth, 
-        defaultHeight, 
-        Phaser.CANVAS,
-        'fractions-game'
-    );
-
-    hip = "143.107.45.11"; //Host ip
-    name = ""; //player name
-    lang = ""; //language
-
-    // Game One : kid and truck
-
-    levelPosition = 0; //Map position
-    levelMove = false; //Move to next position
-    levelDifficulty = 0; //From one to five 
-
-    levelOperator= ""; //Plus; Minus; Mixed 
-
-    levelLabel= false; //Show block label
-    levelShape = ""; //Circle; square
-    levelType = ""; // A - Place distance; B - Select blocks
-    levelMenu = true;
-
-    //adding game states (scenes)
-    
-    game.state.add('language', langState); // boot.js
-    game.state.add('load', loadState); // boot.js
-    game.state.add('name', nameState); // boot.js
-
-    game.state.add('menu', menuState); // menu.js
-
-    game.state.add('map', mapState); // map.js
-
-    game.state.add('menuCircleOne', menuCircleOne); // circleOne.js
-    game.state.add('gameCircleOne', gameCircleOne); // circleOne.js
-    game.state.add('endCircleOne', endCircleOne); // circleOne.js
-
-    game.state.add('menuSquareOne', menuSquareOne); // squareOne.js
-    game.state.add('gameSquareOne', gameSquareOne); // squareOne.js
-    game.state.add('endSquareOne', endSquareOne); // squareOne.js
-
-    game.state.add('menuSquareTwo', menuSquareTwo); // squareTwo.js
-    game.state.add('gameSquareTwo', gameSquareTwo); // squareTwo.js
-    game.state.add('endSquareTwo', endSquareTwo); // squareTwo.js
-
-    var loadAssets = {
-    		
-    	levelSpriteList: null,
-    	levelShapeList: null,
-    	levelTypeList: null,
-
-    	preload: function(){
-
-    		//auxiliar directory
-	        var imgsrc = 'assets/img/';
-
-	        //Progress bar image
-	        game.load.image('progressBar', imgsrc+'pgbar.png');
-
-	        //flags
-	        game.load.image('flag_BR', 	imgsrc+'flag/BRAZ.jpg');
-	        game.load.image('flag_PE', 	imgsrc+'flag/PERU.jpg');
-	        game.load.image('flag_US', 	imgsrc+'flag/UNST.jpg');
-	        game.load.image('flag_FR', 	imgsrc+'flag/FRAN.jpg');
-	        game.load.image('flag_IT', 	imgsrc+'flag/ITAL.png');
-
-	        //scenario
-	        game.load.image('bgimage', 	imgsrc+'bg.jpg');
-	        game.load.image('bgmap', 	imgsrc+'bg_map.png');
-	        game.load.image('cloud', 	imgsrc+'cloud.png');
-	        game.load.image('floor',	imgsrc+'floor.png');
-	        game.load.image('road', 	imgsrc+'road.png');
-
-	        //game phases buttons list
-	        this.levelSpriteList = [];
-
-	        
-	        var levelSpriteSource = [
-	        	'1-left-subs.png', 	//square I
-	        	'2-left-subs.png', 	//square II
-	        	'3-left-subs.png',	//circle I
-	        	'4-left-subs.png',	//circle II
-	        	'5.png'				//square III
-	        ];
-			
-			
-	        if(debugMode){
-	        	levelSpriteSource = [
-		        	'1-left-subs.png', 	//square I
-		        	'2-left-subs.png', 	//square II
-		        	'3-left-subs.png',	//circle I
-		        	'4-left-subs.png',	//circle II
-		        	'5.png',			//square III
-
-		        	'5.png',
-		        	'5.png',
-		        	'5.png',
-		        	'5.png',
-
-		        	'5.png',
-		        	'5.png',
-		        	'5.png',
-		        	'5.png'
-	        	];
-	    	}
-			
-
-	        for(var i=0; i<levelSpriteSource.length; i++){
-	        	this.levelSpriteList[i] = 'game'+i;
-	        	game.load.image(this.levelSpriteList[i], 	imgsrc+'game/'+levelSpriteSource[i]);
-	        }
-			
-			
-			this.levelShapeList = [
-				'Square', 
-				'Square', 
-				'Circle', 
-				'Circle', 
-				'Square',
-			];
-			
-			
-			if(debugMode){
-				this.levelShapeList = [
-					'Square', 
-					'Square', 
-					'Circle', 
-					'Circle', 
-					'Square',
-
-					'Square', 
-					'Square', 
-					'Square', 
-					'Square',
-
-					'Square', 
-					'Square', 
-					'Square', 
-					'Square'
-				];
-			}
-			
-        	this.levelTypeList  = [
-        		1, 
-        		2, 
-        		1, 
-        		2, 
-        		3
-        	];
-        	
-	       	
-	       	if(debugMode){
-	       		this.levelTypeList  = [
-	        		1, 
-	        		2, 
-	        		1, 
-	        		2, 
-	        		3,
-
-	        		3, 
-	        		3, 
-	        		3, 
-	        		3,
-
-	        		3, 
-	        		3, 
-	        		3, 
-	        		3
-	        	];
-	        }
-	       	
-
-	        //header menu buttons
-	        game.load.image('back', 	imgsrc+'menu/back.png');
-	        game.load.image('home', 	imgsrc+'menu/home.png');
-	        game.load.image('info', 	imgsrc+'menu/info.png');
-	        game.load.image('world', 	imgsrc+'menu/language.png');
-	        game.load.image('list', 	imgsrc+'menu/menu.png');
-	        game.load.image('help', 	imgsrc+'menu/help.png');
-	        game.load.image('pgbar', 	imgsrc+'menu/progressBar.png');
-	        game.load.image('block', 	imgsrc+'menu/block.png');
-			game.load.spritesheet('audio',	imgsrc+'menu/audio_48x48.png',48,48,2);
-
-	        //operators
-	        game.load.image('add',		imgsrc+'operator/add.png');
-	        game.load.image('subtract', imgsrc+'operator/subtract.png');
-	        game.load.image('separator',imgsrc+'operator/separator.png');
-	        game.load.image('equal', 	imgsrc+'operator/equal.png');
-	        
-	        //feedback
-	        game.load.image('h_arrow', 	imgsrc+'help/arrow.png');
-	        game.load.image('h_double', imgsrc+'help/double.png');
-	        game.load.image('h_error', 	imgsrc+'help/error.png');
-	        game.load.image('h_ok', 	imgsrc+'help/ok.png');
-	        game.load.image('down', 	imgsrc+'help/down.png');        
-	        game.load.image('pointer', 	imgsrc+'help/pointer.png');
-	        
-	        // Loading assets based on language        
-	        game.load.spritesheet('kid_run',	imgsrc+'kid/run.png', 82, 178, 12);
-	        game.load.spritesheet('kid_walk', 	imgsrc+'kid/walk.png', 78, 175, 26);
-	        game.load.spritesheet('kid_lost', 	imgsrc+'kid/lost.png', 72, 170, 6);
-	        game.load.spritesheet('tractor', 	imgsrc+'tractor/frame.png', 201, 144, 10);
-	        
-	        game.load.image('tractor_green',	imgsrc+'tractor/frame-0.png');
-	        game.load.image('tractor_red', 		imgsrc+'tractor/frame-5.png');
-	        
-	        game.load.image('balloon', 			imgsrc+'airballoon_upper.png');
-	        game.load.image('balloon_basket', 	imgsrc+'airballoon_base.png');
-	        game.load.image('birch', 			imgsrc+'birch.png');
-	        game.load.image('flag', 	imgsrc+'flag.png');
-	        game.load.image('house', 	imgsrc+'house.png');
-	        game.load.image('place_a', 	imgsrc+'place_a.png');
-	        game.load.image('place_b', 	imgsrc+'place_b.png');
-	        game.load.image('garage', 	imgsrc+'garage.png');
-	        game.load.image('farm', 	imgsrc+'farm.png');
-	        game.load.image('rock', 	imgsrc+'rock.png');
-	        game.load.image('school', 	imgsrc+'school.png');
-	        game.load.image('sign',		imgsrc+'sign.png');
-	        game.load.image('tree1', 	imgsrc+'tree.png');
-	        game.load.image('tree2', 	imgsrc+'tree2.png');
-	        game.load.image('tree3', 	imgsrc+'tree3.png');
-	        game.load.image('tree4', 	imgsrc+'tree4.png');
-	        
-	        // Loadind Sound Effects
-	        game.load.audio('sound_ok', ['assets/fx/ok.ogg', 'assets/fx/ok.mp3']);
-	        game.load.audio('sound_error', ['assets/fx/error.ogg', 'assets/fx/error.mp3']);
-	        game.load.audio('sound_beep', ['assets/fx/beep.ogg', 'assets/fx/beep.mp3']);
-
-    	},
-
-    	create: function(){
-
-    		game.physics.startSystem(Phaser.Physics.ARCADE);
-		    game.state.start('language');
-    	
-    	}
-    	
-    };
-
-    //starting to boot game
-    game.state.add('loadAssets', loadAssets); // squareTwo.js
-   	game.state.start('loadAssets');
+var bootState = {
+    preload: function () {
+        //Progress bar image
+        game.load.image('progressBar', 'resource/img/global/pgbar.png');
+        //loading flags (manually)
+        game.load.image('flag_BR', 'resource/img/flag/BRAZ.jpg');
+        game.load.image('flag_PE', 'resource/img/flag/PERU.jpg');
+        game.load.image('flag_US', 'resource/img/flag/UNST.jpg');
+        game.load.image('flag_FR', 'resource/img/flag/FRAN.jpg');
+    },
+    create: function() {
+        //game settings
+        game.stage.backgroundColor = '#cce5ff';
+        
+        game.physics.startSystem(Phaser.Physics.ARCADE);
+        var style = { font: '28px Arial', fill: '#00804d', align: 'center' };
+        
+        /*
+        //generating language selection
+         //pt_BR
+        var title1 = game.add.text(this.game.world.centerX - 220, this.game.world.centerY - 100, 'FRACÇÕES', style);
+        title1.anchor.setTo(1, 0.5);
+        var flag1 = game.add.sprite(this.game.world.centerX - 220, this.game.world.centerY - 100, 'flag_BR');       
+        flag1.anchor.setTo(0, 0.5);
+        flag1.inputEnabled = true;
+        flag1.input.useHandCursor = true;
+        flag1.events.onInputDown.add(this.setLang,{lang:'pt_BR'});
+         //es_PE
+        var title2 = game.add.text(this.game.world.centerX + 200, this.game.world.centerY - 100, 'FRACCIONES', style);
+        title2.anchor.setTo(1, 0.5);
+        var flag2 = game.add.sprite(this.game.world.centerX + 200, this.game.world.centerY - 100, 'flag_PE');       
+        flag2.anchor.setTo(0, 0.5);
+        flag2.inputEnabled = true;
+        flag2.input.useHandCursor = true;
+        flag2.events.onInputDown.add(this.setLang,{lang:'es_PE'});
+         //en_US
+        var title3 = game.add.text(this.game.world.centerX - 220, this.game.world.centerY + 100, 'FRACTIONS', style);
+        title3.anchor.setTo(1, 0.5);
+        var flag3 = game.add.sprite(this.game.world.centerX - 220, this.game.world.centerY + 100, 'flag_US');       
+        flag3.anchor.setTo(0, 0.5);
+        flag3.inputEnabled = true;
+        flag3.input.useHandCursor = true;
+        flag3.events.onInputDown.add(this.setLang,{lang:'en_US'});
+         //fr_FR
+        var title4 = game.add.text(this.game.world.centerX + 200, this.game.world.centerY + 100, 'FRACTIONS', style);
+        title4.anchor.setTo(1, 0.5);
+        var flag4 = game.add.sprite(this.game.world.centerX + 200, this.game.world.centerY + 100, 'flag_FR');       
+        flag4.anchor.setTo(0, 0.5);
+        flag4.inputEnabled = true;
+        flag4.input.useHandCursor = true;
+        flag4.events.onInputDown.add(this.setLang,{lang:'fr_FR'});
+        */
+        
+        // Esquiva do menu de idioma ::Igor
+        game.state.start('load');
+    },
+    
+    setLang: function(){
+        //set language
+        lang = this.lang;
+        //start resource loading
+        game.state.start('load');
+    }
+};
+
+var loadState = {
+    
+    preload: function () {
+        //Progress bar image
+        game.load.image('progressBar', 'resource/img/global/pgbar.png');
+    },
+    
+    preload: function () {
+        
+        // Displaying the progress bar
+        var progressBar = game.add.sprite(game.world.centerX, game.world.centerY, 'progressBar');
+        progressBar.anchor.setTo(0.5, 0.5);
+        game.load.setPreloadSprite(progressBar);
+        
+        if(!oneMenu){
+            game.stage.backgroundColor = '#cce5ff';
+            game.physics.startSystem(Phaser.Physics.ARCADE);
+        }
+        
+        // Loading dictionary
+        game.load.json('dictionary', 'resource/lang/'+lang+'.json');
+                
+        // Loading global assets (sprites and images)
+        var baseimg = 'resource/img/global/';
+        
+        game.load.image('bgimage', baseimg+'bg.jpg');
+        game.load.image('bgmap', baseimg+'bg_map.png');
+        game.load.image('cloud', baseimg+'cloud.png');
+        game.load.image('floor', baseimg+'floor.png');
+        game.load.image('road', baseimg+'road.png');
+        
+         //games list buttons
+        game.load.image('game1c', baseimg+'game/one-c.png');
+		game.load.image('game2c', baseimg+'game/two-c.png');
+		game.load.image('game3c', baseimg+'game/three-c.png');
+		game.load.image('game4c', baseimg+'game/four-c.png');
+        game.load.image('game1s', baseimg+'game/one-s.png');
+		game.load.image('game2s', baseimg+'game/two-s.png');
+		game.load.image('game3s', baseimg+'game/three-s.png');
+		game.load.image('game4s', baseimg+'game/four-s.png');
+		game.load.image('game5s', baseimg+'game/five-s.png');
+         //header menu
+        game.load.image('back', baseimg+'menu/back.png');
+        game.load.image('home', baseimg+'menu/home.png');
+        game.load.image('info', baseimg+'menu/info.png');
+        game.load.image('about', baseimg+'menu/info.png');
+        game.load.image('list', baseimg+'menu/menu.png');
+        game.load.image('help', baseimg+'menu/help.png');
+        game.load.image('pgbar', baseimg+'menu/progressBar.png');
+        game.load.image('block', baseimg+'menu/block.png');
+        game.load.image('eraser', baseimg+'menu/eraser.png');
+         //operators
+		game.load.image('add', baseimg+'operator/add.png');
+		game.load.image('subtract', baseimg+'operator/subtract.png');
+		game.load.image('separator', baseimg+'operator/separator.png');
+		game.load.image('equal', baseimg+'operator/equal.png');
+         //helpers
+		game.load.image('h_arrow', baseimg+'help/arrow.png');
+		game.load.image('h_double', baseimg+'help/double.png');
+		game.load.image('h_error', baseimg+'help/error.png');
+		game.load.image('h_ok', baseimg+'help/ok.png');
+        game.load.image('down', baseimg+'help/down.png');        
+        game.load.image('pointer', baseimg+'help/pointer.png');
+        
+        // Loading assets based on lang
+        var basesrc = 'resource/img/'+lang+'/';
+        
+        game.load.spritesheet('kid_run', basesrc+'kid/run.png', 82, 178, 12);
+        game.load.spritesheet('kid_walk', basesrc+'kid/walk.png', 78, 175, 24);
+        game.load.spritesheet('kid_lost', basesrc+'kid/lost.png', 72, 170, 6);
+        game.load.spritesheet('tractor', basesrc+'tractor/frame.png', 201, 144, 10);
+        game.load.image('balloon', basesrc+'airballoon_upper.png');
+        game.load.image('balloon_basket', basesrc+'airballoon_base.png');
+        game.load.image('birch', basesrc+'birch.png');
+        game.load.image('flag', basesrc+'flag.png');
+        game.load.image('house', basesrc+'house.png');
+        game.load.image('place_a', basesrc+'place_a.png');
+        game.load.image('place_b', basesrc+'place_b.png');
+        game.load.image('garage', basesrc+'garage.png');
+        game.load.image('farm', basesrc+'farm.png');
+        game.load.image('rock', basesrc+'rock.png');
+        game.load.image('school', basesrc+'school.png');
+        game.load.image('sign', basesrc+'sign.png');
+        game.load.image('tree1', basesrc+'tree.png');
+        game.load.image('tree2', basesrc+'tree2.png');
+        game.load.image('tree3', basesrc+'tree3.png');
+        game.load.image('tree4', basesrc+'tree4.png');
+        
+                
+        // Loadind Sound Effects
+        game.load.audio('sound_ok', ['resource/fx/ok.ogg', 'resource/fx/ok.mp3']);
+        game.load.audio('sound_error', ['resource/fx/error.ogg', 'resource/fx/error.mp3']);
+        game.load.audio('sound_beep', ['resource/fx/beep.ogg', 'resource/fx/beep.mp3']);
+        
+    },
+    create: function() {  
+        game.state.start('name');
+    }
+};
+
+var nameLbl;
+var nameState = {
+    preload: function () {
+        //textbox
+    },
+    create: function() {
+        //game settings
+        game.stage.backgroundColor = '#cce5ff';
+        
+        var words =  game.cache.getJSON('dictionary');
+        
+        game.physics.startSystem(Phaser.Physics.ARCADE);
+        var style = { font: '30px Arial', fill: '#00804d', align: 'center' };
+        var styleName = { font: '44px Arial', fill: '#000000', align: 'center' };
+        
+        //generating language selection
+        var titulo = game.add.text(this.game.world.centerX, this.game.world.centerY - 100, words.insert_name, style);
+        titulo.anchor.setTo(0.5);
+        
+        var lineColor = 0x000000;
+        var fillColor = 0xfffff0;
+        
+        var nameBox = game.add.graphics(this.game.world.centerX - 200, this.game.world.centerY - 50);
+        nameBox.lineStyle(2, lineColor);
+        nameBox.beginFill(fillColor);
+        nameBox.drawRect(0, 0, 400, 100);
+        nameBox.alpha = 0.5;
+        nameBox.endFill();
+        
+        nameLbl = game.add.text(this.game.world.centerX, this.game.world.centerY, "", styleName);
+        nameLbl.anchor.setTo(0.5);
+        
+        var clear = game.add.sprite(game.world.centerX + 250, game.world.centerY, 'eraser');
+        clear.scale.setTo(0.8);
+        clear.anchor.setTo(0.5);
+        
+        clear.inputEnabled = true;
+        clear.input.useHandCursor = true;
+        clear.events.onInputDown.add(this.clearName, null);
+        
+        var btn = game.add.graphics(this.game.world.centerX - 84, this.game.world.centerY +70);
+        btn.lineStyle(1, 0x293d3d);
+        btn.beginFill(0x3d5c5c);
+        btn.drawRect(0, 0, 168, 60);
+        btn.alpha = 0.5;
+        btn.endFill();
+        
+        btn.inputEnabled = true;
+        btn.input.useHandCursor = true;
+        btn.events.onInputDown.add(this.ready, null);
+        
+        var listo = game.add.text(this.game.world.centerX+1, this.game.world.centerY + 102, words.ready, { font: '34px Arial', fill: '#f0f5f5', align: 'center' });
+        listo.anchor.setTo(0.5);
+        
+        game.input.keyboard.addCallbacks(this, null, null, this.keyPress);
+        
+        // Chama direto o menu ::Igor
+        name = "Maria";
+        console.log("name is " + name);
+        game.state.start('menu');
+    },
+    
+    clearName: function(){
+        nameLbl.text  = "";
+    },
+    
+    keyPress: function(char) {
+        var RegExpression = /^[a-zA-Z\s]*$/; 
+
+        if (RegExpression.test(char)) {
+            nameLbl.text += char;
+        }        
+    },
+    ready: function(){
+        //var txt = nameLbl.text.trim;
+        console.log(nameLbl.text.length);
+        if(nameLbl.text.trim().length==0){
+            nameLbl.text  = "";
+            return;
+        }
+        
+        name = nameLbl.text.trim();
+        console.log("name is " + name);
+        
+        
+        if(oneMenu){ //If menu, normal game
+            // Go to the menu state
+            game.state.start('menu');
+        }else{ //parameters game
+            if(oneShape=="Circle"){
+                game.state.start("mapCOne");
+            }else if(oneShape=="Square"){
+                if(oneOperator=='Mixed'){
+                    twoPosition = 0;
+                    twoMove = true;
+                    twoDifficulty = oneDifficulty; 
+                    twoOperator= "";
+                    twoLabel= false;
+                    twoShape = oneShape;
+                    twoType = oneType;
+                    twoMenu = false;
+                    
+                    game.state.start("mapSTwo");
+                }else{
+                    game.state.start("mapSOne");
+                }
+            }
+            
+        }
+        
+    }
+};

File diff suppressed because it is too large
+ 542 - 306
ilm/iFractions/0.1.20200221/ifractions/js/circleOne.js


File diff suppressed because it is too large
+ 18706 - 0
ilm/iFractions/0.1.20200221/ifractions/js/jquery-ui.js


File diff suppressed because it is too large
+ 5 - 0
ilm/iFractions/0.1.20200221/ifractions/js/jquery.js


+ 0 - 0
ilm/iFractions/0.1.20200221/ifractions/js/jquery.min.js


File diff suppressed because it is too large
+ 5 - 0
ilm/iFractions/0.1.20200221/ifractions/js/jquery.modal.min.js


+ 0 - 212
ilm/iFractions/0.1.20200221/ifractions/js/map.js

@@ -1,212 +0,0 @@
-
-/*
-    var mapState = {
-        create: function(){},
-        update: function(){},
-        ---------------------------- end of phaser functions
-        func_loadGame: function(){},
-    }
-*/
-
-var mapState = {
-
-    create: function() {
-
-        if(levelType=="C"){
-            this.gameStateString = "game"+levelShape+"Two";
-            this.endStateString = "end"+levelShape+"Two";
-            this.menuStateString = "menu"+levelShape+"Two";
-        }else{
-            this.gameStateString = "game"+levelShape+"One";
-            this.endStateString = "end"+levelShape+"One";
-            this.menuStateString = "menu"+levelShape+"One";
-        }
-        
-        // Background
-        game.add.image(0, 40, 'bgmap');
-        
-        // Navigation buttons
-        buttonSettings["func_addButtons"](true,false,
-                                    true,true,false,
-                                    false,false,
-                                    this.menuStateString,false);
-        
-        // Styles for labels
-        var stylePlace = { font: '26px Arial', fill: '#ffffff', align: 'center'};
-        var styleMenu = { font: '30px Arial', fill: '#000000', align: 'center'};
-        
-        // Progress bar
-        var percentText = passedLevels*25;
-        var percentBlocks = passedLevels;
-
-        for(var p=0;p<percentBlocks;p++){
-            var block = game.add.image(660+p*37.5, 10, 'block');
-                block.scale.setTo(2.6, 1);
-        }
-
-        game.add.text(820, 10, percentText+'%', styleMenu);
-        game.add.text(650, 10, lang.difficulty + ' ' + levelDifficulty, styleMenu).anchor.setTo(1,0);
-        game.add.image(660, 10, 'pgbar');
-        
-         //Road
-        this.points = {
-            'x': [ 90, 204, 318, 432, 546, 660 ],
-            'y': [ 486, 422, 358, 294, 230, 166 ]
-        };
-        
-        if(this.gameStateString=="gameSquareOne"){
-        	//Garage
-	        var garage = game.add.image(this.points.x[0], this.points.y[0], 'garage');
-	        garage.scale.setTo(0.4);
-	        garage.anchor.setTo(0.5, 1);
-	         //Farm
-	        var farm = game.add.image(this.points.x[5], this.points.y[5], 'farm');
-	        farm.scale.setTo(0.6);
-	        farm.anchor.setTo(0.1, 0.7);
-        }else{
-	      	//House
-	        var house = game.add.image(this.points.x[0], this.points.y[0], 'house');
-	        house.scale.setTo(0.7);
-	        house.anchor.setTo(0.7, 0.8);
-	         //School
-	        var school = game.add.image(this.points.x[5], this.points.y[5], 'school');
-	        school.scale.setTo(0.35);
-	        school.anchor.setTo(0.2, 0.7);
-	    }
-
-         //Trees and Rocks
-        
-        this.rocks = {
-             'x': [156, 275, 276, 441, 452, 590, 712],
-             'y': [309, 543, 259, 156, 419, 136, 316]
-        }
-
-        this.r_types = [1, 1, 2, 1, 2, 2, 2];
-        
-        for(var i=0; i<this.r_types.length; i++){
-            if(this.r_types[i]==1){
-                var sprite = game.add.image(this.rocks.x[i], this.rocks.y[i], 'rock');
-                sprite.scale.setTo(0.32);
-                sprite.anchor.setTo(0.5, 0.95);
-            }else if(this.r_types[i]==2){
-                var sprite = game.add.image(this.rocks.x[i], this.rocks.y[i], 'birch');
-                sprite.scale.setTo(0.4);
-                sprite.anchor.setTo(0.5, 0.95);
-            }
-        }
-
-        this.trees = {
-             'x': [105, 214, 354, 364, 570, 600, 740, 779],
-             'y': [341, 219, 180, 520, 550, 392, 488, 286]
-        }
-
-        this.t_types = [2, 4, 3, 4, 1, 2, 4, 4];
-        
-        for(var i=0; i<this.t_types.length; i++){
-            var sprite = game.add.image(this.trees.x[i], this.trees.y[i], 'tree'+this.t_types[i]);
-            sprite.scale.setTo(0.6);
-            sprite.anchor.setTo(0.5, 0.95);
-        }
-        
-        // places
-        for (var p = 1; p < this.points.x.length -1; p++){
-            var place;
-            if(p<levelPosition){
-                place = game.add.image(this.points.x[p], this.points.y[p], 'place_b');
-            }else if (levelMove && p==levelPosition){
-                place = game.add.image(this.points.x[p], this.points.y[p], 'place_b');
-            }else{
-                place = game.add.image(this.points.x[p], this.points.y[p], 'place_a');
-            }
-            place.anchor.setTo(0.5, 0.5);
-            place.scale.setTo(0.3);
-            var sign = game.add.image(this.points.x[p]-20, this.points.y[p]-60, 'sign');
-            sign.anchor.setTo(0.5, 1);
-            sign.scale.setTo(0.4);
-            if(p>0 && p<this.points.x.length-1){
-                var text = game.add.text(this.points.x[p]-23, this.points.y[p]-84, p, stylePlace);
-                text.anchor.setTo(0.35, 0.5);
-            }
-        }
-
-        if(this.gameStateString=="gameSquareOne"){
-	    	this.character = game.add.sprite(this.points.x[levelPosition], this.points.y[levelPosition], 'tractor');
-
-	        var walk = this.character.animations.add('walk',[0,1,2,3,4]);
-	        this.character.animations.play('walk', 5, true);
-	        this.character.angle -= 25;
-        }else{
-	        this.character = game.add.sprite(this.points.x[levelPosition], this.points.y[levelPosition], 'kid_run');
-
-	        this.character.animations.add('run');
-	        this.character.animations.play('run', 6, true);
-        }
-        this.character.anchor.setTo(0.5, 1);
-        this.character.scale.setTo(0.5);
-        game.physics.arcade.enable(this.character);
-
-        // Delay to next level
-        this.count = 0;
-        this.wait = 60;
-        
-    },
-
-    update: function() {
-        
-        // Wait 2 seconds before moving or staring a game
-        this.count ++;
-        if(this.count<=this.wait) return;
-        
-        // If movement is stopped or position is 6 (final), load game
-    	if(this.gameStateString=="gameSquareOne"){
-		    if(levelPosition==8){
-	            levelMove = false;
-	        }
-		}else if(this.gameStateString=="gameCircleOne"){
-			if(levelPosition==6){
-	            levelMove = false;
-	        }
-		}else if(this.gameStateString=="gameSquareTwo"){
-			if(levelPosition==5){
-	            levelMove = false;
-	        }
-		}
-
-
-        if(!levelMove){
-            this.func_loadGame();
-        }
-        
-        // If momevent is enabled, move to next point from actual
-        if(levelMove){
-            game.physics.arcade.moveToXY(
-                this.character, 
-                this.points.x[levelPosition+1],
-                this.points.y[levelPosition+1],
-                100
-            );    	
-            
-            // I kid/tractor reached the end, stop movement
-            if(Math.ceil(this.character.x)==this.points.x[levelPosition+1] || Math.ceil(this.character.y)==this.points.y[levelPosition+1]){
-                levelMove=false;
-                levelPosition += 1; //Update position
-            }
-        }
-    },
-        
-    //MapLoading function
-    func_loadGame: function(){
-    	
-        if(audioStatus){
-            beepSound.play();
-        }
-
-        if(levelPosition<5){
-        	game.state.start(this.gameStateString);
-        }else{
-        	game.state.start(this.endStateString);
-    	}
-
-    }
-    
-};

+ 193 - 181
ilm/iFractions/0.1.20200221/ifractions/js/menu.js

@@ -1,217 +1,229 @@
+var menu1, menu2, menu3, menu4;
+var m_info, m_world, m_menu, m_back, m_help;
+var beepSound;
 
-/*
-    var menuState = {
-        create: function(){},
-        ---------------------------- end of phaser functions
-        func_loadGame: function(){},
-        func_showTitle: function(){},
-        func_clearTitle: function(){},
-    }
-*/
-
-var menuState = {
-
-    inputStartPosition: null,
-    inputEndPosition: null,
-    
-    isCameraMoving: false,
-
-    extraWidth: null,
-
-    title: null,
-    lbl_game: null,
-    player_info: null,
-
-    // creating game menu screen assets
+var words;
+var lbl_game;
+var menuState={
     create: function() {
         
-        if(loadAssets.levelSpriteList.length > 8){
-            var aux = loadAssets.levelSpriteList.length-8;
-            this.extraWidth = (aux%2==0) ? (aux/2)*235 : ((aux+1)/2)*235;
-        }else{
-            this.extraWidth = 0;
-        }
+        // Creating sound variable
+        beepSound = game.add.audio('sound_beep');
+        
+        // Reading dictionary
+        words = game.cache.getJSON('dictionary');
+        
+        // Setting title
+        var style = { font: "32px Arial", fill: "#00804d", align: "center" };
+        var title = game.add.text(this.game.world.centerX, 80, words.menu_title, style);
+        title.anchor.setTo(0.5,0.5);
+        
+        // game selection text
+        var style_game = { font: "27px Arial", fill: "#003cb3", align: "center" };
+        lbl_game = game.add.text(this.game.world.centerX, 110, "", style_game);
+        lbl_game.anchor.setTo(0.5,0.5);
+        
+        // Menu options
+         //information label
+        m_info = game.add.text(14, 53, "", { font: "20px Arial", fill: "#330000", align: "center" });
+          // Return to language button
+        
+        // Remove language icon ::Igor
+        m_world = game.add.sprite(10, 10, 'about'); 
+        m_world.inputEnabled = true;
+        m_world.input.useHandCursor = true;
+        m_world.events.onInputDown.add(this.loadState, {state: "boot", beep: beepSound});
+        m_world.events.onInputOver.add(this.showOption, {message: words.menu_world});
+        m_world.events.onInputOut.add(this.showOption, {message: ""});
+                
+        // List buttons
+        menu1 = game.add.sprite(this.game.world.centerX + 10, this.game.world.centerY - 70, 'game1c');
+        menu2 = game.add.sprite(this.game.world.centerX + 160, this.game.world.centerY - 70, 'game2c');
+        menu3 = game.add.sprite(this.game.world.centerX + 10, this.game.world.centerY + 90, 'game3c');
+        menu4 = game.add.sprite(this.game.world.centerX + 160, this.game.world.centerY + 90, 'game4c');
+        
+        menu5 = game.add.sprite(this.game.world.centerX - 350, this.game.world.centerY - 70, 'game1s');
+        menu6 = game.add.sprite(this.game.world.centerX - 200, this.game.world.centerY - 70, 'game2s');
+        menu7 = game.add.sprite(this.game.world.centerX - 350, this.game.world.centerY + 90, 'game3s');
+        menu8 = game.add.sprite(this.game.world.centerX - 200, this.game.world.centerY + 90, 'game4s');
+        
+        menu9 = game.add.sprite(this.game.world.centerX + 350, this.game.world.centerY -70, 'game5s');
+        
+        // Buttons actions
+        menu1.anchor.setTo(0.5, 0.5);
+        menu1.inputEnabled = true;
+        menu1.input.useHandCursor = true;
+        menu1.events.onInputDown.add(this.loadGame,{num:1, beep: beepSound, shape : "Circle", label : true});
+        menu1.events.onInputOver.add(this.showTitle,{num:1, beep: beepSound, shape : "Circle", label : true});
+        menu1.events.onInputOut.add(this.clearTitle);
+        
+        menu2.anchor.setTo(0.5, 0.5);
+        menu2.inputEnabled = true;
+        menu2.input.useHandCursor = true;
+        menu2.events.onInputDown.add(this.loadGame,{num:2, beep: beepSound, shape : "Circle", label : false});
+        menu2.events.onInputOver.add(this.showTitle,{num:2, beep: beepSound, shape : "Circle", label : false});
+        menu2.events.onInputOut.add(this.clearTitle);
+        
+        menu3.anchor.setTo(0.5, 0.5);
+        menu3.inputEnabled = true;
+        menu3.input.useHandCursor = true;
+        menu3.events.onInputDown.add(this.loadGame,{num:3, beep: beepSound, shape : "Circle", label : true});
+        menu3.events.onInputOver.add(this.showTitle,{num:3, beep: beepSound, shape : "Circle", label : true});
+        menu3.events.onInputOut.add(this.clearTitle);
+        
+        menu4.anchor.setTo(0.5, 0.5);
+        menu4.inputEnabled = true;
+        menu4.input.useHandCursor = true;
+        menu4.events.onInputDown.add(this.loadGame,{num:4, beep: beepSound, shape : "Circle", label : false});
+        menu4.events.onInputOver.add(this.showTitle,{num:4, beep: beepSound, shape : "Circle", label : false});
+        menu4.events.onInputOut.add(this.clearTitle);
+        
+        menu5.anchor.setTo(0.5, 0.5);
+        menu5.inputEnabled = true;
+        menu5.input.useHandCursor = true;
+        menu5.events.onInputDown.add(this.loadGame,{num:1, beep: beepSound, shape : "Square", label : true});
+        menu5.events.onInputOver.add(this.showTitle,{num:1, beep: beepSound, shape : "Square", label : true});
+        menu5.events.onInputOut.add(this.clearTitle);
+        
+        menu6.anchor.setTo(0.5, 0.5);
+        menu6.inputEnabled = true;
+        menu6.input.useHandCursor = true;
+        menu6.events.onInputDown.add(this.loadGame,{num:2, beep: beepSound, shape : "Square", label : false});
+        menu6.events.onInputOver.add(this.showTitle,{num:2, beep: beepSound, shape : "Square", label : false});
+        menu6.events.onInputOut.add(this.clearTitle);
+        
+        menu7.anchor.setTo(0.5, 0.5);
+        menu7.inputEnabled = true;
+        menu7.input.useHandCursor = true;
+        menu7.events.onInputDown.add(this.loadGame,{num:3, beep: beepSound, shape : "Square", label : true});
+        menu7.events.onInputOver.add(this.showTitle,{num:3, beep: beepSound, shape : "Square", label : true});
+        menu7.events.onInputOut.add(this.clearTitle);
+        
+        menu8.anchor.setTo(0.5, 0.5);
+        menu8.inputEnabled = true;
+        menu8.input.useHandCursor = true;
+        menu8.events.onInputDown.add(this.loadGame,{num:4, beep: beepSound, shape : "Square", label : false});
+        menu8.events.onInputOver.add(this.showTitle,{num:4, beep: beepSound, shape : "Square", label : false});
+        menu8.events.onInputOut.add(this.clearTitle);
+        
+        menu9.anchor.setTo(0.5, 0.5);
+        menu9.inputEnabled = true;
+        menu9.input.useHandCursor = true;
+        menu9.events.onInputDown.add(this.loadGame,{num:5, beep: beepSound, shape : "Square", label : false});
+        menu9.events.onInputOver.add(this.showTitle,{num:5, beep: beepSound, shape : "Square", label : false});
+        menu9.events.onInputOut.add(this.clearTitle);
 
-        // CAMERA
-        this.game.world.setBounds(0, 0, this.game.world.width + this.extraWidth, this.game.world.height);
-     	  
         // Floor
-        for(var i=0;i<this.game.world.width/100;i++){
+        for(var i=0;i<9;i++){
             game.add.image(i*100, 501, 'floor');
         }
-        // LABELS
-
-        // Player name
-        this.player_info = game.add.text(this.game.world.centerX - this.extraWidth/2, 40, lang.welcome + ", " + username + "!", { font: "20px Arial", fill: "#330000", align: "center" });        
-        this.player_info.anchor.setTo(0.5,0.5);
-
-        // Title : Select a game
-        var style = { font: "32px Arial", fill: "#00804d", align: "center" };
-        this.title = game.add.text(this.game.world.centerX - this.extraWidth/2, 80, lang.menu_title, style);
-        this.title.anchor.setTo(0.5,0.5);
-
-        // Subtitle : Game mode 
-        var style_game = { font: "27px Arial", fill: "#003cb3", align: "center" };
-        this.lbl_game = game.add.text(this.game.world.centerX - this.extraWidth/2, 110, "", style_game);
-        this.lbl_game.anchor.setTo(0.5,0.5);
-
-        // BUTTONS
-
-        // Navigation buttons
-		buttonSettings["func_addButtons"](false,true,
-    	                             false,false,false,
-                                     true,true,
-                                     false,false);
-        
-        // Game buttons
-		var x = -350;
-		var y = -70;
-        var menuObjList = [];
-		for(var i=0; i<loadAssets.levelSpriteList.length; i++){
-			menuObjList[i] = game.add.sprite(defaultWidth/2 + x, this.game.world.centerY + y, 'game'+i);
-			menuObjList[i].anchor.setTo(0.5, 0.5);
-	        menuObjList[i].inputEnabled = true;
-	        menuObjList[i].input.useHandCursor = true;
-	        menuObjList[i].events.onInputDown.add(this.func_loadGame,{levelType: loadAssets.levelTypeList[i], beep: beepSound, shape: loadAssets.levelShapeList[i], label : true, game: this.game, extraWidth: this.extraWidth});
-	        menuObjList[i].events.onInputOver.add(this.func_showTitle,{levelType: loadAssets.levelTypeList[i], beep: beepSound, shape : loadAssets.levelShapeList[i], label : true, menu: menuObjList[i], lbl_game: this.lbl_game});
-	        menuObjList[i].events.onInputOut.add(this.func_clearTitle, {menu: menuObjList[i], lbl_game: this.lbl_game});
-			if((i+1)%2==1){
-				y=90;
-			}else{
-				y=-70; 
-				x+=235;
-			}
-		}
-
-        // TURNING MOUSE INPUT CAPTURE ON TO MANAGE PAGE SCROLL
-        this.input.mouse.capture = true;
-
-    },
-
-    update: function(){
         
-
-        if(this.input.activePointer.leftButton.isUp){
-            this.inputUp();
+        // ::Igor
+        this.num = parseInt(jogo.num);
+        oneShape = jogo.shape;
+        this.shape= jogo.shape;
+        oneLabel = jogo.label;
+        oneType = jogo.modo;
+        twoType = jogo.modo;
+        
+        if( (this.num==1 || this.num==2) && this.shape=="Circle"){
+            game.state.start('menuCOne');
         }
-
-        if(this.input.activePointer.leftButton.isDown){
-            this.inputDown();
+        if( (this.num==3 || this.num==4) && this.shape=="Circle"){
+            game.state.start('menuCOne');
         }
-
-        if(this.isCameraMoving){
-            this.camera.x += (this.inputStartPosition.x - this.input.activePointer.x)/50;
-            this.title.x = (this.game.world.centerX - this.extraWidth/2) + this.camera.x;
-            this.lbl_game.x = (this.game.world.centerX - this.extraWidth/2) + this.camera.x;
-            this.player_info.x = (this.game.world.centerX - this.extraWidth/2) + this.camera.x;
-
-            buttonSettings["changeRightButtonX"]((defaultWidth) + this.camera.x);
+        if( (this.num==1 || this.num==2) && this.shape=="Square"){
+            game.state.start('menuSOne');
         }
+        if( (this.num==3 || this.num==4) && this.shape=="Square"){
+            game.state.start('menuSOne');
+        }
+        if( this.num==5 && this.shape=="Square"){
+            game.state.start('menuSTwo');
+        }
+        // ::Igor
 
+        
     },
     
-    inputDown: function(){
-        if(!this.isCameraMoving){
-            this.inputStartPosition = new Phaser.Point(this.input.activePointer.x, this.input.activePointer.y);
-        } 
-
-        this.isCameraMoving = true;
-
-    },
-
-    inputUp: function(){
-        this.isCameraMoving = false;
-    },
-
-    //calls the selected game menu screen
-    func_loadGame: function(){
-
-        if(debugMode) console.log("antes: "+this.game.world.width);
-        this.game.world.setBounds(0, 0, defaultWidth, this.game.world.height);
-        if(debugMode) console.log("depois: "+this.game.world.width);
-
-        if(audioStatus){
-            this.beep.play();
+    loadGame: function(){
+        this.beep.play();
+        if( (this.num==1 || this.num==2) && this.shape=="Circle"){
+            oneShape = this.shape;
+            oneLabel = this.label;
+            oneType = "A";
+            game.state.start('menuCOne');
         }
-
-        levelShape = this.shape;
-        levelLabel = this.label;
-
-        if(this.shape=="Square"){
-            
-            if(this.levelType==1 || this.levelType==2){
-                
-                if(this.levelType==1){
-                    levelType = "A";
-                }else if(this.levelType==2){
-                    levelType = "B";
-                }
-
-                if(debugMode) console.log("Square One");
-                game.state.start('menuSquareOne');                
-            
-            }else if(this.levelType==3){
-                
-                levelType = "C";
-                
-                if(debugMode) console.log("Square Two, "+levelType);
-                game.state.start('menuSquareTwo')
-            
-            }
-
-        }else if(this.shape=="Circle"){
-        
-            if (this.levelType==1){
-                levelType = "A";
-            }else if (this.levelType==2){
-                levelType = "B";
-            }
-            
-            if(debugMode) console.log("Circle One");
-            game.state.start('menuCircleOne');
-        
+        if( (this.num==3 || this.num==4) && this.shape=="Circle"){
+            oneShape = this.shape;
+            oneLabel = this.label;
+            oneType = "B";
+            game.state.start('menuCOne');
+        }
+        if( (this.num==1 || this.num==2) && this.shape=="Square"){
+            oneShape = this.shape;
+            oneLabel = this.label;
+            oneType = "A";
+            game.state.start('menuSOne');
+        }
+        if( (this.num==3 || this.num==4) && this.shape=="Square"){
+            oneShape = this.shape;
+            oneLabel = this.label;
+            oneType = "B";
+            game.state.start('menuSOne');
+        }
+        if( this.num==5 && this.shape=="Square"){
+            twoShape = this.shape;
+            twoLabel = this.label;
+            twoType = "";
+            game.state.start('menuSTwo');
         }
-
     },
-
-    func_showTitle: function(){
+    showTitle: function(){
         
         var title = "";
         var type = "";
         
-        if(this.levelType==1){
-            type = "I";
+        if( (this.num==1 || this.num==2) ){
+            type = "A";
         }
-        if(this.levelType==2){
-            type = "II";
+        if( (this.num==3 || this.num==4) ){
+            type = "B";
         }
-        if(this.levelType==3){
-            type = "III";
+        if( this.num==5 && this.shape=="Square"){
+            type = "C";
         }
         
         if(this.shape=="Circle"){
-            title += lang.circle_name;
+            title += words.circle_name;
         }else if(this.shape=="Square"){
-            title += lang.square_name;
+            title += words.square_name;
         }
         
         if(type!=""){
-          //circ/quad       I/II/III
-            title  += " " + type;
+            title  += ", "+words.mode_name+ " "+type;
         }
-
-        this.lbl_game.text = title;
-
-        this.menu.scale.setTo(1.05);
-
-    },
-
-    func_clearTitle: function(){
         
-        this.lbl_game.text = "";
+        if(this.label){
+            title += ", " + words.with_name + " " + words.label_name;
+        }else{
+            title += ", " + words.without_name + " " + words.label_name;
+        }
         
-        this.menu.scale.setTo(1);
-
+        lbl_game.text = title;
+    },
+    clearTitle: function(){
+        lbl_game.text = "";
+    },
+    
+    showOption: function(){
+        m_info.text = this.message;
+    },    
+    
+    loadState: function(){
+        this.beep.play();
+        game.state.start(this.state);
     }
     
 };
+

+ 0 - 0
ilm/iFractions/0.1.20200221/ifractions/js/phaser.js


+ 0 - 0
ilm/iFractions/0.1.20200221/ifractions/js/phaser.min.js


+ 0 - 307
ilm/iFractions/0.1.20200221/ifractions/js/preMenu.js

@@ -1,307 +0,0 @@
-
-/*
-    var langState = {
-        create: function(){},
-        --------------------------------------- end of phaser functions
-        func_setLang: function(){} //calls loadState
-    };
-    
-    var loadState = {
-        preload: function(){},
-        create: function(){} //calls nameState
-        -------------------------------------- end of phaser functions
-    };
-        
-    var nameState = {
-        create: function(){},
-        ------------------------------------------------ end of phaser functions
-        func_checkEmptyName: function(){}
-        func_savename: function(){} //calls menu.js -> menuState
-    };
-
-    var buttonSettings = {
-        func_addButtons: function(_,_,_,_,_,_,_,_,_){},
-        loadState: function(){}
-    };
-*/
-
-// "choose language" screen
-
-var langState = {
-
-    create: function() {
-
-        if(this.game.world.width != defaultWidth) this.game.world.setBounds(0, 0, defaultWidth, this.game.world.height);
-
-        // AUX
-
-        var style = { font: '28px Arial', fill: '#00804d', align: 'center' };
-
-        // AUDIO
-
-        beepSound = game.add.audio('sound_beep');   // game sound
-        okSound = game.add.audio('sound_ok');       // correct answer sound
-        errorSound = game.add.audio('sound_error'); // wrong answer sound
-
-        // BACKGROUND
-
-        game.stage.backgroundColor = '#cce5ff';
-        
-        // LANGUAGES
-
-        var flagObjList = [];
-        var langNameList= ['FRAÇÕES  ', 'FRAZIONI  ',   'FRACTIONS  ',  'FRACCIONES  ', 'FRACTIONS  '   ];
-        var flagList    = ['flag_BR',   'flag_IT',      'flag_US',      'flag_PE',      'flag_FR'       ];
-        var langList    = ['pt_BR',     'it_IT',        'en_US',        'es_PE',        'fr_FR'         ];
-        var x1List = [-220, -220, -220,  200, 200];
-        var x2List = [-120, -120, -120,  300, 300];
-        var yList  = [-180,    0,  180, -100, 100];
-        
-        for(var i=0; i<langList.length; i++){
-            var titleList = game.add.text(this.game.world.centerX + x1List[i], this.game.world.centerY + yList[i], langNameList[i], style);
-            titleList.anchor.setTo(1, 0.5);
-
-            flagObjList[i] = game.add.sprite(this.game.world.centerX + x2List[i], this.game.world.centerY + yList[i], flagList[i]);       
-            flagObjList[i].anchor.setTo(0.5, 0.5);
-            flagObjList[i].inputEnabled = true;
-            flagObjList[i].input.useHandCursor = true;
-            flagObjList[i].events.onInputDown.add(this.func_setLang,{ lang: langList[i] });
-            flagObjList[i].events.onInputOver.add(function(){ this.flagObj.scale.setTo(1.05) },{ flagObj: flagObjList[i] });
-            flagObjList[i].events.onInputOut.add( function(){ this.flagObj.scale.setTo(1)    },{ flagObj: flagObjList[i] });
-        }
-
-        
-    },
-    
-    func_setLang: function(){
-        // set language
-        lang = this.lang;
-        // start resource loading
-        game.state.start('load');
-    
-    }
-
-};
-
-// "loading" screen and load json dictionary
-var loadState = {
-    
-    preload: function() {
-        
-        // Displaying the progress bar
-        var progressBar = game.add.sprite(game.world.centerX, game.world.centerY, 'progressBar');
-        progressBar.anchor.setTo(0.5, 0.5);
-        game.load.setPreloadSprite(progressBar);
-        
-        // Loading dictionary
-        game.load.json('dictionary', 'assets/languages/'+lang+'.json');
-        
-    },
-
-    create: function() {  
-
-        // gets selected language from json
-        lang = game.cache.getJSON('dictionary');
-        
-        if(firstTime==true){ // select language screen - first time opening ifractions
-          firstTime = false;
-          game.state.start('name'); // go to select name screen, then menu
-        }else{               // changing language during the game
-          game.state.start('menu'); // go to menu
-        }
-    
-    }
-
-};
-
-// "username" screen
-var nameState = {
-
-    create: function() {
-                    
-        // AUX
-
-        var style = { font: '30px Arial', fill: '#00804d', align: 'center' };
-        var styleName = { font: '44px Arial', fill: '#000000', align: 'center' };
-        
-        // title
-
-        var title = game.add.text(this.game.world.centerX, this.game.world.centerY - 100, lang.insert_name, style);
-        title.anchor.setTo(0.5);
-        
-        errorEmptyName = game.add.text(this.game.world.centerX, this.game.world.centerY - 70, "", {font: '18px Arial', fill: '#330000', align: 'center'});
-        errorEmptyName.anchor.setTo(0.5);
-
-        // "READY" button
-        
-        var btn = game.add.graphics(this.game.world.centerX - 84, this.game.world.centerY + 70);
-        btn.lineStyle(1, 0x293d3d);
-        btn.beginFill(0x3d5c5c);
-        btn.drawRect(0, 0, 168, 60);
-        btn.alpha = 0.5;
-        btn.endFill();
-
-        btn.inputEnabled = true;
-        btn.input.useHandCursor = true;
-        btn.events.onInputDown.add(this.func_checkEmptyName);
-        btn.events.onInputOver.add(function(){ btn.alpha=0.4 });
-        btn.events.onInputOut.add(function(){ btn.alpha=0.5 });
-        
-        var ready = game.add.text(this.game.world.centerX + 1, this.game.world.centerY + 102, lang.ready, { font: '34px Arial', fill: '#f0f5f5', align: 'center' });
-        ready.anchor.setTo(0.5);      
-
-        document.getElementById("text-field-div").style.visibility = "visible";
-        document.getElementById("name_id").addEventListener('keypress', function(e){
-            var keycode = e.keycode ? e.keycode : e.which; 
-            //se apertar enter vai para ready, assim como o botão
-            if(keycode == 13){
-                nameState["func_checkEmptyName"]();
-            }     
-        });
-
-    },
-         
-    func_checkEmptyName: function() {
-
-        if(document.getElementById("name_id").value!=""){
-            nameState["func_savename"]();
-            errorEmptyName.setText("");
-        }else{
-            errorEmptyName.setText(lang.empty_name);
-        }
-
-    },
-              
-    func_savename: function() {
-        
-        // saves the typed name on username variable
-        username = document.getElementById("name_id").value;
-        if(debugMode) console.log("user is " + username);        
-
-        document.getElementById("text-field-div").style.visibility = "hidden";
-
-        //clears the text field again
-        document.getElementById("name_id").value = "";
-
-        if(audioStatus){
-            beepSound.play();
-        }
-
-        game.state.start('menu');
-        
-    }
-
-};
-
-var buttonSettings = {
-
-    m_info_left: null,
-
-    m_back: null, 
-    m_list: null,
-    m_help: null,
-
-    m_info_right: null, 
-
-    m_audio: null,
-    m_world: null, 
-
-    xEsq: null,
-    xDir: null,
-
-    func_addButtons: function(left, right, b0Esq, b1Esq, b2Esq, b0Dir, b1Dir, phase, helpBtn){
-        
-        this.xDir = defaultWidth - 50 - 10;
-        this.xEsq = 10;
-
-        if(left == true){
-            this.m_info_left = game.add.text(this.xEsq, 53, "", { font: "20px Arial", fill: "#330000", align: "center" });
-        }
-
-        if(right == true){
-            this.m_info_right = game.add.text(this.xDir+50, 53, "", { font: "20px Arial", fill: "#330000", align: "right" });
-            this.m_info_right.anchor.setTo(1,0.02);
-        }
-
-        // left buttons
-        if(b0Esq == true){
-            // Return to diffculty
-            this.m_back = game.add.sprite(this.xEsq, 10, 'back'); 
-            this.m_back.inputEnabled = true;
-            this.m_back.input.useHandCursor = true;
-            this.m_back.events.onInputDown.add(this.loadState, {state: phase, beep: beepSound});
-            this.m_back.events.onInputOver.add(function(){ this.m_info_left.text = lang.menu_back},{m_info_left: this.m_info_left});
-            this.m_back.events.onInputOut.add(function(){ this.m_info_left.text = ""},{m_info_left: this.m_info_left});
-            
-            this.xEsq+=50;
-        }
-
-        if(b1Esq == true){
-            // Return to menu button
-            this.m_list = game.add.sprite(this.xEsq, 10, 'list'); 
-            this.m_list.inputEnabled = true;
-            this.m_list.input.useHandCursor = true;
-            this.m_list.events.onInputDown.add(this.loadState, {state: "menu", beep: beepSound});
-            this.m_list.events.onInputOver.add(function(){ this.m_info_left.text = lang.menu_list},{m_info_left: this.m_info_left});
-            this.m_list.events.onInputOut.add(function(){ this.m_info_left.text = ""},{m_info_left: this.m_info_left});
-            
-            this.xEsq+=50;
-        }
-
-        if(b2Esq == true){
-            // Help button
-            this.m_help = game.add.sprite(this.xEsq, 10, 'help');
-            this.m_help.inputEnabled = true;
-            this.m_help.input.useHandCursor = true;
-            this.m_help.events.onInputDown.add(helpBtn, {beep: beepSound});
-            this.m_help.events.onInputOver.add(function(){ this.m_info_left.text = lang.menu_help},{m_info_left: this.m_info_left});
-            this.m_help.events.onInputOut.add(function(){ this.m_info_left.text = ""},{m_info_left: this.m_info_left});
-            
-            this.xEsq+=50;
-        }
-
-        // rightButtons
-        if(b0Dir == true){
-            this.m_audio = game.add.sprite(this.xDir, 10, 'audio');
-            audioStatus ? this.m_audio.frame = 0 : this.m_audio.frame = 1;
-            this.m_audio.inputEnabled = true;
-            this.m_audio.input.useHandCursor = true;
-            this.m_audio.events.onInputDown.add(function(){ if(audioStatus){ audioStatus=false; this.m_audio.frame = 1; }else{ audioStatus=true; this.m_audio.frame = 0; }},{m_audio: this.m_audio});
-            this.m_audio.events.onInputOver.add(function(){ this.m_info_right.text = lang.audio },{m_info_right: this.m_info_right});
-            this.m_audio.events.onInputOut.add(function(){ this.m_info_right.text = "" },{m_info_right: this.m_info_right});
-
-            this.xDir-=50;
-        }
-
-        if(b1Dir == true){
-            // Return to language button
-            this.m_world = game.add.sprite(this.xDir, 10, 'world'); 
-            this.m_world.inputEnabled = true;
-            this.m_world.input.useHandCursor = true;
-            this.m_world.events.onInputDown.add(this.loadState, {state: "language", beep: beepSound});
-            this.m_world.events.onInputOver.add(function(){ this.m_info_right.text = lang.menu_world },{m_info_right : this.m_info_right});
-            this.m_world.events.onInputOut.add(function(){ this.m_info_right.text = "" },{m_info_right: this.m_info_right});
-                  
-            this.xDir-=50;
-        }
-
-    },
-
-    changeRightButtonX: function(newWidth){
-        this.m_info_right.x = newWidth - 10;
-        this.m_audio.x = newWidth - 50 - 10;
-        console.log(this.m_audio.x+" "+newWidth);
-        this.m_world.x = newWidth - 50 - 50 - 10;
-    },
-
-
-    loadState: function(){
-
-        if(audioStatus){
-            this.beep.play();
-        }
-        game.state.start(this.state);
-    
-    }
-
-};

File diff suppressed because it is too large
+ 569 - 382
ilm/iFractions/0.1.20200221/ifractions/js/squareOne.js


File diff suppressed because it is too large
+ 543 - 341
ilm/iFractions/0.1.20200221/ifractions/js/squareTwo.js


+ 0 - 126
ilm/iFractions/0.1.20200221/ifractions/php/save.php

@@ -1,126 +0,0 @@
-<?php
-
-// ATENCAO ao
-// * nome da base de dados: db_ifractions
-// * nome da tabela dados : ifractions
-
-// php/save.php on line 23, referer: http://milanesa.ime.usp.br/ifractions1/
-
-/// @see js/circleOne.js
-/// @see js/squareOne.js
-/// @see js/squareTwo.js
-
-function remove_accents ($stripAccents) {
-  /*
-  $stripAccents = strtr($stripAccents,
-         'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ',
-         'aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY');
-  $stripAccents = preg_replace('/[^\x20-\x7E]/','', $stripAccents);
-  */
-  return $stripAccents;
-  }
-
-// Monta vetor [0,1] de dados da m<E1>quina cliente
-function ipMaquina0 () {
-  if (getenv("HTTP_CLIENT_IP"))
-    $ip = getenv("HTTP_CLIENT_IP");
-  elseif (getenv("HTTP_X_FORWARDED_FOR"))
-    $ip = getenv("HTTP_X_FORWARDED_FOR");
-  elseif (getenv("REMOTE_ADDR"))
-    $ip = getenv("REMOTE_ADDR");
-  $resp[0] = $ip;
-  $resp[1] = gethostbyaddr($ip);
-  return $resp;
-  }
-
-// Monta vetor [0,1] de dados da m<E1>quina cliente
-function ipMaquina () {
-  if (getenv("HTTP_CLIENT_IP"))
-    $ip = getenv("HTTP_CLIENT_IP");
-  elseif (getenv("HTTP_X_FORWARDED_FOR"))
-    $ip = getenv("HTTP_X_FORWARDED_FOR");
-  elseif (getenv("REMOTE_ADDR"))
-    $ip = getenv("REMOTE_ADDR");
-  $strIP = $ip;
-  $resp = gethostbyaddr($ip);
-  if (isset($resp) && strlen($resp)>0) {
-    $strIP .= "; " . $resp;
-    }
-  return $strIP;
-  }
-
-
-$servername = "localhost";
-$username = "root"; // put here the name of user root of MySQL
-$password = "put_paswd"; // put here the password of user root of MySQL
-$dbname = "put_name_of_base"; // put here the name of data base used to register iFraction use
-
-// Create connection
-$conn = new mysqli($servername, $username, $password, $dbname);
-// Check connection
-if ($conn->connect_error) {
-  die("Connection failed: " . $conn->connect_error);
-  }
-
-
-// $ip = $_REQUEST["s_ip"];
-$ip = ipMaquina();
-/*
-$vet_ip = ipMaquina0();
-$ip = "";
-if (isset($vet_ip[0]) && strlen($vet_ip[0]>0))
-  $ip = $vet_ip[0];
-if (isset($vet_ip[1]) && strlen($vet_ip[1]>0))
-  if (strlen($ip)>0)
-    $ip = $ip . " - " . $vet_ip[1];
-  else
-    $ip = $vet_ip[1];
-*/
-
-$play = $_REQUEST["s_name"];
-$date = date("Y-m-d H:i:s");
-$lang = $_REQUEST["s_lang"];
-$game = $_REQUEST["s_game"];
-$mode = $_REQUEST["s_mode"];
-$oper = $_REQUEST["s_oper"];
-$leve = $_REQUEST["s_leve"];
-$posi = $_REQUEST["s_posi"];
-$resu = $_REQUEST["s_resu"];
-$time = $_REQUEST["s_time"];
-$deta = $_REQUEST["s_deta"];
-
-$play0 = $play; // /var/www/html/ifractions1/js/preMenu.js: insert_name
-$play = remove_accents($play); // /js/squareOne.js:vars=s_ip=143.107.45.11&s_name=&s_lang=pt&s_game=Square&s_mode=A&s_oper=Plus&s_leve=1&s_posi=1&s_resu=true&s_time=3&s_deta=numBlocks:3, valBlocks: 1,1,1, blockIndex: 2, floorIndex: 2; url=php/save.php
-
-if (is_object($lang))
-  $lang = json_decode($lang);
-
-// Table 'ifractions': id s_hostip s_playername s_datetime s_lang s_game s_mode s_operator s_level s_mappos s_result s_time s_details
-$sql = "INSERT INTO ifractions
-(s_hostip, s_playername, s_datetime, s_lang, s_game, s_mode, s_operator, s_level, s_mappos, s_result, s_time, s_details)
-VALUES
-('$ip', '$play', '$date', '$lang', '$game', '$mode', '$oper', $leve, $posi, '$resu', $time, '$deta')";
-
-// Register in database
-if ($conn->query($sql) === TRUE) {
-  print "Gravado/Grabado";
-  $result = "OK";
-} else {
-  print "Error: " . $sql . "<br>" . $conn->error;
-  $result = "Erro: " . $conn->error;
-  }
-
-
-//DEBUG
-// js/menu.js : var menuState = { player_info = ... username ...}
-// welcome
-// index.php: game.state.add('name', nameState);
-$name = $_REQUEST["name"];
-$username = $_REQUEST["username"];
-$data = date('Y_m_d_H_i_s');
-$fp = fopen('../../temp/file_' . $data . ".txt", 'w');
-fwrite($fp, "nome=" . $play0 . ", name=" . $name . ", username=" . $username . "\n" . $sql . "\nResultado: " . $result);
-fclose($fp);
-
-$conn->close();
-?> 

+ 63 - 0
ilm/iFractions/0.1.20200221/ifractions/resource/cn/save.php

@@ -0,0 +1,63 @@
+ <?php
+
+$servername = "localhost";
+$username = "jrustler_uscore";
+$password = "12345";
+$dbname = "jrustler_fscore";
+
+// Create connection
+$conn = new mysqli($servername, $username, $password, $dbname);
+// Check connection
+if ($conn->connect_error) {
+    die("Connection failed: " . $conn->connect_error);
+}
+
+$ip = $_REQUEST["s_ip"];
+$play = $_REQUEST["s_name"];
+$date = date("Y-m-d H:i:s");
+$lang = $_REQUEST["s_lang"];
+$game = $_REQUEST["s_game"];
+$mode = $_REQUEST["s_mode"];
+$oper = $_REQUEST["s_oper"];
+$leve = $_REQUEST["s_leve"];
+$posi = $_REQUEST["s_posi"];
+$resu = $_REQUEST["s_resu"];
+$time = $_REQUEST["s_time"];
+$deta = $_REQUEST["s_deta"];
+
+
+$sql = "INSERT INTO `score`
+(`s_hostip`,
+`s_playername`,
+`s_datetime`,
+`s_lang`,
+`s_game`,
+`s_mode`,
+`s_operator`,
+`s_level`,
+`s_mappos`,
+`s_result`,
+`s_time`,
+`s_details`)
+VALUES(
+'$ip',
+'$play',
+'$date',
+'$lang',
+'$game',
+'$mode',
+'$oper',
+$leve,
+$posi,
+'$resu',
+$time,
+'$deta')";
+
+/*if ($conn->query($sql) === TRUE) {
+    echo "Grabado";
+} else {
+    echo "Error: " . $sql . "<br>" . $conn->error;
+}
+
+$conn->close();*/
+?> 

ilm/iFractions/0.1.20200221/ifractions/assets/fx/beep.mp3 → ilm/iFractions/0.1.20200221/ifractions/resource/fx/beep.mp3


ilm/iFractions/0.1.20200221/ifractions/assets/fx/beep.ogg → ilm/iFractions/0.1.20200221/ifractions/resource/fx/beep.ogg


ilm/iFractions/0.1.20200221/ifractions/assets/fx/error.mp3 → ilm/iFractions/0.1.20200221/ifractions/resource/fx/error.mp3


ilm/iFractions/0.1.20200221/ifractions/assets/fx/error.ogg → ilm/iFractions/0.1.20200221/ifractions/resource/fx/error.ogg


ilm/iFractions/0.1.20200221/ifractions/assets/fx/ok.mp3 → ilm/iFractions/0.1.20200221/ifractions/resource/fx/ok.mp3


ilm/iFractions/0.1.20200221/ifractions/assets/fx/ok.ogg → ilm/iFractions/0.1.20200221/ifractions/resource/fx/ok.ogg


ilm/iFractions/0.1.20200221/ifractions/assets/img/airballoon_base.png → ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/airballoon_base.png


ilm/iFractions/0.1.20200221/ifractions/assets/img/airballoon_upper.png → ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/airballoon_upper.png


ilm/iFractions/0.1.20200221/ifractions/assets/img/birch.png → ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/birch.png


ilm/iFractions/0.1.20200221/ifractions/assets/img/farm.png → ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/farm.png


ilm/iFractions/0.1.20200221/ifractions/assets/img/flag.png → ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/flag.png


ilm/iFractions/0.1.20200221/ifractions/assets/img/garage.png → ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/garage.png


ilm/iFractions/0.1.20200221/ifractions/assets/img/house.png → ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/house.png


ilm/iFractions/0.1.20200221/ifractions/assets/img/kid/lost.png → ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/kid/lost.png


ilm/iFractions/0.1.20200221/ifractions/assets/img/kid/run.png → ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/kid/run.png


BIN
ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/kid/walk.png


ilm/iFractions/0.1.20200221/ifractions/assets/img/place_a.png → ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/place_a.png


ilm/iFractions/0.1.20200221/ifractions/assets/img/place_b.png → ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/place_b.png


ilm/iFractions/0.1.20200221/ifractions/assets/img/rock.png → ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/rock.png


ilm/iFractions/0.1.20200221/ifractions/assets/img/school.png → ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/school.png


ilm/iFractions/0.1.20200221/ifractions/assets/img/sign.png → ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/sign.png


ilm/iFractions/0.1.20200221/ifractions/assets/img/tractor/frame-0.png → ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/tractor/frame-0.png


ilm/iFractions/0.1.20200221/ifractions/assets/img/tractor/frame-1.png → ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/tractor/frame-1.png


ilm/iFractions/0.1.20200221/ifractions/assets/img/tractor/frame-2.png → ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/tractor/frame-2.png


ilm/iFractions/0.1.20200221/ifractions/assets/img/tractor/frame-3.png → ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/tractor/frame-3.png


ilm/iFractions/0.1.20200221/ifractions/assets/img/tractor/frame-4.png → ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/tractor/frame-4.png


ilm/iFractions/0.1.20200221/ifractions/assets/img/tractor/frame-5.png → ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/tractor/frame-5.png


ilm/iFractions/0.1.20200221/ifractions/assets/img/tractor/frame-6.png → ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/tractor/frame-6.png


ilm/iFractions/0.1.20200221/ifractions/assets/img/tractor/frame-7.png → ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/tractor/frame-7.png


ilm/iFractions/0.1.20200221/ifractions/assets/img/tractor/frame-8.png → ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/tractor/frame-8.png


ilm/iFractions/0.1.20200221/ifractions/assets/img/tractor/frame-9.png → ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/tractor/frame-9.png


ilm/iFractions/0.1.20200221/ifractions/assets/img/tractor/frame.png → ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/tractor/frame.png


ilm/iFractions/0.1.20200221/ifractions/assets/img/tree.png → ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/tree.png


ilm/iFractions/0.1.20200221/ifractions/assets/img/tree2.png → ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/tree2.png


ilm/iFractions/0.1.20200221/ifractions/assets/img/tree3.png → ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/tree3.png


ilm/iFractions/0.1.20200221/ifractions/assets/img/tree4.png → ilm/iFractions/0.1.20200221/ifractions/resource/img/en_US/tree4.png


BIN
ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/airballoon_base.png


BIN
ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/airballoon_upper.png


BIN
ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/birch.png


BIN
ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/farm.png


BIN
ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/flag.png


BIN
ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/garage.png


BIN
ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/house.png


BIN
ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/kid/lost.png


BIN
ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/kid/run.png


BIN
ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/kid/walk.png


BIN
ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/place_a.png


BIN
ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/place_b.png


BIN
ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/rock.png


BIN
ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/school.png


BIN
ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/sign.png


BIN
ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/tractor/frame-0.png


+ 0 - 0
ilm/iFractions/0.1.20200221/ifractions/resource/img/es_PE/tractor/frame-1.png


Some files were not shown because too many files changed in this diff