scaleOne.js 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338
  1. // /******************************
  2. // * This file holds game states.
  3. // ******************************/
  4. // /** [GAME STATE]
  5. // *
  6. // * ...
  7. // *
  8. // * @namespace
  9. // */
  10. // const scaleOne = {
  11. // /**
  12. // * Main code
  13. // */
  14. // create: function () {
  15. // this.control = {
  16. // scale: {
  17. // x0: (context.canvas.width / 3) * 2,
  18. // y0: context.canvas.height - 128,
  19. // rotation: 0,
  20. // },
  21. // icicles: { x0: 100, y0: 197, coordinates: undefined },
  22. // };
  23. // this.control.icicles.coordinates = [
  24. // { x: this.control.icicles.x0, y: this.control.icicles.y0 },
  25. // { x: this.control.icicles.x0 + 160, y: this.control.icicles.y0 },
  26. // { x: this.control.icicles.x0 + 160 * 2, y: this.control.icicles.y0 },
  27. // { x: this.control.icicles.x0, y: this.control.icicles.y0 + 160 * 1.5 },
  28. // {
  29. // x: this.control.icicles.x0 + 160,
  30. // y: this.control.icicles.y0 + 160 * 1.5,
  31. // },
  32. // {
  33. // x: this.control.icicles.x0 + 160 * 2,
  34. // y: this.control.icicles.y0 + 160 * 1.5,
  35. // },
  36. // ];
  37. // this.scale = {
  38. // base: null,
  39. // top: null,
  40. // plate_left: null,
  41. // plate_right: null,
  42. // };
  43. // this.icicles = [];
  44. // this.icicleFractions = [];
  45. // renderBackground('scale');
  46. // // Calls function that loads navigation icons
  47. // // FOR MOODLE
  48. // if (moodle) {
  49. // navigationIcons.add(
  50. // false,
  51. // false,
  52. // false, // Left icons
  53. // true,
  54. // false, // Right icons
  55. // false,
  56. // false
  57. // );
  58. // } else {
  59. // navigationIcons.add(
  60. // true,
  61. // true,
  62. // true, // Left icons
  63. // true,
  64. // false, // Right icons
  65. // 'customMenu',
  66. // this.showAnswer
  67. // );
  68. // }
  69. // this.renderList.scale();
  70. // this.renderList.icicles();
  71. // // teste
  72. // this.iciclesIA = game.add.sprite(
  73. // this.control.scale.x0 + 260,
  74. // 100, // this.scale.top.y - 180,
  75. // 'floor_snow',
  76. // 2,
  77. // 2
  78. // );
  79. // this.iciclesIA.anchor(0.5, 0.5);
  80. // this.iciclesIAFractions = game.add.text(
  81. // this.control.scale.x0 + 260,
  82. // 100 + 40, // this.scale.top.y - 180,
  83. // '1/2',
  84. // textStyles.h2_blue
  85. // );
  86. // this.iciclesIAControl = {
  87. // counter: 0,
  88. // direction: 'initial',
  89. // index: 0,
  90. // };
  91. // //game.timer.start(); // Set a timer for the current level (used in postScore())
  92. // game.event.add('click', this.onInputDown);
  93. // game.event.add('mousemove', this.onInputOver);
  94. // },
  95. // renderList: {
  96. // scale: () => {
  97. // // base of the scale
  98. // self.scale.base = game.add.image(
  99. // self.control.scale.x0,
  100. // self.control.scale.y0,
  101. // 'scale_base',
  102. // 2
  103. // );
  104. // // top of the scale
  105. // self.scale.top = game.add.image(
  106. // self.control.scale.x0,
  107. // self.control.scale.y0 - 170,
  108. // 'scale_arm',
  109. // 2
  110. // );
  111. // self.scale.top.rotate = self.control.scale.rotate;
  112. // // left plate
  113. // self.scale.plate_left = game.add.image(
  114. // self.control.scale.x0 - 258,
  115. // self.scale.top.y - 30,
  116. // 'scale_plate',
  117. // 2
  118. // );
  119. // // right plate
  120. // self.scale.plate_right = game.add.image(
  121. // self.control.scale.x0 + 258,
  122. // self.scale.top.y - 30,
  123. // 'scale_plate',
  124. // 2
  125. // );
  126. // for (let item in self.scale) {
  127. // if (self.scale[item] !== null) self.scale[item].anchor(0.5, 1);
  128. // }
  129. // },
  130. // icicles: () => {
  131. // for (let i = 0; i < self.control.icicles.coordinates.length; i++) {
  132. // const icicle = game.add.sprite(
  133. // self.control.icicles.coordinates[i].x,
  134. // self.control.icicles.coordinates[i].y,
  135. // 'floor_snow',
  136. // 2,
  137. // 2
  138. // );
  139. // const fractionTop = game.add.text(
  140. // self.control.icicles.coordinates[i].x + 65,
  141. // self.control.icicles.coordinates[i].y + 120,
  142. // '1',
  143. // textStyles.h2_blue
  144. // );
  145. // const fractionLine = game.add.text(
  146. // self.control.icicles.coordinates[i].x + 65,
  147. // self.control.icicles.coordinates[i].y + 120 + 3,
  148. // '__',
  149. // textStyles.h2_blue
  150. // );
  151. // const fractionBottom = game.add.text(
  152. // self.control.icicles.coordinates[i].x + 65,
  153. // self.control.icicles.coordinates[i].y + 120 * 1.4,
  154. // '2',
  155. // textStyles.h2_blue
  156. // );
  157. // self.icicles.push(icicle);
  158. // // self.icicleFractions.push({
  159. // // fractionTop,
  160. // // fractionLine,
  161. // // fractionBottom,
  162. // // });
  163. // // self.icicleFractions.push({
  164. // // fractionTop: fractionTop,
  165. // // fractionLine: fractionLine,
  166. // // fractionBottom: fractionBottom,
  167. // // });
  168. // }
  169. // },
  170. // },
  171. // animationList: {
  172. // initial: () => {
  173. // const rotationOffset = 10 / 3;
  174. // // lower icicle
  175. // if (self.iciclesIA.y < self.scale.top.y - 180) {
  176. // moveList([self.iciclesIA, self.iciclesIAFractions], 0, 15);
  177. // }
  178. // // make balance tend to the right
  179. // else if (self.iciclesIAControl.counter <= 3) {
  180. // moveList(
  181. // [self.iciclesIA, self.iciclesIAFractions, self.scale.plate_right],
  182. // 0,
  183. // 15
  184. // );
  185. // moveList([self.scale.plate_left], 0, -3);
  186. // self.scale.top.rotate = 10 / 3;
  187. // self.iciclesIAControl.counter++;
  188. // } else {
  189. // if (self.iciclesIAControl.counter > 59) {
  190. // self.iciclesIAControl.counter = 0;
  191. // self.iciclesIAControl.direction = 'left';
  192. // }
  193. // self.iciclesIAControl.counter++;
  194. // }
  195. // },
  196. // scaleLeft: () => {
  197. // // const rotationOffset = 10 / 5;
  198. // // const distancia = 9 * 5; // 45
  199. // if (self.iciclesIAControl.counter <= 9) {
  200. // moveList(
  201. // [self.iciclesIA, self.iciclesIAFractions, self.scale.plate_right],
  202. // 0,
  203. // -5
  204. // );
  205. // moveList([self.scale.plate_left], 0, 5);
  206. // self.scale.top.rotate = -10 / 3;
  207. // self.iciclesIAControl.counter++;
  208. // } else {
  209. // if (self.iciclesIAControl.counter > 59) {
  210. // self.iciclesIAControl.counter = 0;
  211. // self.iciclesIAControl.direction = 'right';
  212. // }
  213. // self.iciclesIAControl.counter++;
  214. // }
  215. // },
  216. // scaleRight: () => {
  217. // //const rotationOffset = 10 / 5;
  218. // if (self.iciclesIAControl.counter <= 9) {
  219. // moveList(
  220. // [self.iciclesIA, self.iciclesIAFractions, self.scale.plate_right],
  221. // 0,
  222. // 5
  223. // );
  224. // moveList([self.scale.plate_left], 0, -5);
  225. // self.scale.top.rotate = 10 / 3;
  226. // self.iciclesIAControl.counter++;
  227. // } else {
  228. // if (self.iciclesIAControl.counter > 59) {
  229. // self.iciclesIAControl.counter = 0;
  230. // self.iciclesIAControl.direction = 'left';
  231. // }
  232. // self.iciclesIAControl.counter++;
  233. // }
  234. // },
  235. // },
  236. // /**
  237. // * Game loop
  238. // */
  239. // update: function () {
  240. // if (self.iciclesIAControl.direction === 'initial') {
  241. // self.animationList.initial();
  242. // }
  243. // if (self.iciclesIAControl.direction === 'left') {
  244. // self.animationList.scaleLeft();
  245. // }
  246. // if (self.iciclesIAControl.direction === 'right') {
  247. // self.animationList.scaleRight();
  248. // }
  249. // game.render.all();
  250. // },
  251. // /**
  252. // * Function called by self.onInputOver() when cursor is over a valid rectangle
  253. // *
  254. // * @param {object} cur rectangle the cursor is over
  255. // */
  256. // overIcicleHandler: function (cur) {
  257. // for (let i in self.icicles) {
  258. // if (i === cur.index) {
  259. // self.icicles[i].scale = 1.2;
  260. // }
  261. // }
  262. // },
  263. // /**
  264. // * Called by mouse click event
  265. // *
  266. // * @param {object} mouseEvent contains the mouse click coordinates
  267. // */
  268. // onInputDown: function (mouseEvent) {
  269. // const x = game.math.getMouse(mouseEvent).x;
  270. // const y = game.math.getMouse(mouseEvent).y;
  271. // navigationIcons.onInputDown(x, y);
  272. // game.render.all();
  273. // },
  274. // /**
  275. // * Called by mouse move event
  276. // *
  277. // * @param {object} mouseEvent contains the mouse move coordinates
  278. // */
  279. // onInputOver: function (mouseEvent) {
  280. // const x = game.math.getMouse(mouseEvent).x;
  281. // const y = game.math.getMouse(mouseEvent).y;
  282. // self.icicles.forEach((icicle) => {
  283. // if (game.math.isOverIcon(x, y, icicle)) {
  284. // self.overIcicleHandler(icicle);
  285. // }
  286. // });
  287. // navigationIcons.onInputOver(x, y);
  288. // game.render.all();
  289. // },
  290. // /**
  291. // * Display correct answer
  292. // */
  293. // showAnswer: function () {},
  294. // /**
  295. // * Saves players data after level ends - to be sent to database <br>
  296. // *
  297. // * Attention: the 'line_' prefix data table must be compatible to data table fields (MySQL server)
  298. // *
  299. // * @see /php/save.php
  300. // */
  301. // postScore: function () {},
  302. // };