phaserConfig.js 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. var towerA = [],
  2. towerB = [],
  3. towerC = [];
  4. var diskQntity = 3,
  5. nMoves, nCurrentMoves = 0,
  6. minimumMoves = Math.pow(2, diskQntity) - 1;
  7. var textsFont = { fontFamily: 'Arial', fontSize: 50, color: '#000000' };
  8. var gameWonMsg, nMoves;
  9. var redoButton, undoButton, restartButton, diskSelectorButton;
  10. var scene, tween;
  11. var wrongMoveSprite;
  12. class sceneGame extends Phaser.Scene {
  13. constructor() {
  14. super({ key: 'sceneGame' });
  15. }
  16. preload() {
  17. scene = this;
  18. this.load.image('sky', 'assets/sky.png');
  19. this.load.image('acoesBox', 'assets/acoes.png');
  20. //this.load.image('base', 'assets/baseText.png');
  21. this.load.image('torre', 'assets/torre.png');
  22. this.load.image('selectionArea', 'assets/selectionArea.png');
  23. //buttons
  24. this.load.image('redo', 'assets/redo2.png');
  25. this.load.image('redoDisabled', 'assets/redoDisabled2.png');
  26. this.load.image('undo', 'assets/undo2.png');
  27. this.load.image('undoDisabled', 'assets/undoDisabled2.png');
  28. this.load.image('restart', 'assets/restart.png');
  29. this.load.image('wrongMove', 'assets/wrongMove.png');
  30. //Only loads disk selection if its the teacher using
  31. try {
  32. if (iLMparameters.iLM_PARAM_SendAnswer == 'true')
  33. this.load.image('diskSelector', 'assets/diskSelector.png');
  34. console.log("iAssign version");
  35. } catch (e) {
  36. this.load.image('diskSelector', 'assets/diskSelector.png');
  37. console.log("web-version");
  38. }
  39. //load all imgs needed for the exercise
  40. for (var i = 0; i < 6; i++) {
  41. this.load.image('disk' + i, 'assets/disk' + i + '.png')
  42. this.load.image('stroked' + i, 'assets/strokedDisks/stroked' + i + '.png')
  43. }
  44. }
  45. create() {
  46. //misc
  47. this.add.image(0, 0, 'sky').setOrigin(0).setDisplaySize(1320, 600);
  48. this.add.sprite(120, 90, 'acoesBox').setDisplaySize(80, 70);
  49. nMoves = this.add.text(90, 70, 0, textsFont);
  50. this.add.text(120, 520, 'Torre A', textsFont);
  51. this.add.text(555, 520, 'Torre B', textsFont);
  52. this.add.text(990, 520, 'Torre C', textsFont);
  53. gameWonMsg = this.add.text(300, 150, '', { fontFamily: 'Arial', fontSize: 36, color: '#00ef00', align: 'center' });
  54. //buttons
  55. redoButton = this.add.sprite(720, 90, 'redoDisabled').setDisplaySize(80, 70); //.setInteractive({useHandCursor: false});
  56. redoButton.on('pointerdown', function(pointer) {
  57. redoMove();
  58. });
  59. undoButton = this.add.sprite(600, 90, 'undoDisabled').setDisplaySize(80, 70); //.setInteractive({useHandCursor: false});
  60. undoButton.on('pointerdown', function(pointer) {
  61. undoMove();
  62. });
  63. restartButton = this.add.sprite(990, 90, 'restart').setDisplaySize(80, 60).setInteractive({ useHandCursor: true });
  64. restartButton.on('pointerdown', function(pointer) {
  65. restart();
  66. });
  67. diskSelectorButton = this.add.sprite(1200, 90, 'diskSelector').setDisplaySize(80, 70).setInteractive({ useHandCursor: true });
  68. diskSelectorButton.on('pointerdown', function(pointer) {
  69. this.scene.start('sceneDiskSelection');
  70. }, this);
  71. //Towers
  72. this.add.image(220, 320, 'torre').setScale(0.13);
  73. this.add.image(655, 320, 'torre').setScale(0.13);
  74. this.add.image(1090, 320, 'torre').setScale(0.13);
  75. //Disks
  76. var diskX = 220,
  77. diskY = 430;
  78. for (var i = diskQntity - 1; i >= 0; i--) {
  79. towerA[diskQntity - 1 - i] = this.add.sprite(diskX, diskY, 'disk' + i).setScale(0.13); //.setDisplaySize(diskWidth, diskHeight);
  80. diskY -= 28;
  81. }
  82. //towerA Selection Area
  83. var towerASelectionArea = this.add.sprite(220, 375, 'selectionArea').setDisplaySize(400, 320).setInteractive({ useHandCursor: true });
  84. towerASelectionArea.on('pointerdown', function(pointer) {
  85. selectA();
  86. });
  87. //towerB selectionArea
  88. var towerBSelectionArea = this.add.sprite(655, 375, 'selectionArea').setDisplaySize(400, 320).setInteractive({ useHandCursor: true });
  89. towerBSelectionArea.on('pointerdown', function(pointer) {
  90. selectB();
  91. });
  92. var towerCSelectionArea = this.add.sprite(1090, 375, 'selectionArea').setDisplaySize(400, 320).setInteractive({ useHandCursor: true });
  93. towerCSelectionArea.on('pointerdown', function(pointer) {
  94. selectC();
  95. });
  96. wrongMoveSprite = this.add.sprite(220, 300, 'wrongMove').setDisplaySize(100, 100).setAlpha(0);
  97. }
  98. update() {}
  99. event() {
  100. console.log('over');
  101. }
  102. }
  103. class sceneDiskSelection extends Phaser.Scene {
  104. constructor() {
  105. super({ key: 'sceneDiskSelection' });
  106. }
  107. preload() {
  108. this.load.image('sixDisks', 'assets/diskSelection/sixDisks.png');
  109. this.load.image('fiveDisks', 'assets/diskSelection/fiveDisks.png');
  110. this.load.image('fourDisks', 'assets/diskSelection/fourDisks.png');
  111. this.load.image('threeDisks', 'assets/diskSelection/threeDisks.png');
  112. this.load.image('twoDisks', 'assets/diskSelection/twoDisks.png');
  113. }
  114. create() {
  115. this.add.image(0, 0, 'sky').setOrigin(0).setDisplaySize(1320, 600);
  116. var sixDisksButton = this.add.sprite(850, 450, 'sixDisks').setDisplaySize(200, 200).setInteractive({ useHandCursor: true });
  117. sixDisksButton.on('pointerdown', function(pointer) {
  118. selectDisks(6, this);
  119. }, this);
  120. var fiveDisksButton = this.add.sprite(450, 450, 'fiveDisks').setDisplaySize(200, 200).setInteractive({ useHandCursor: true });
  121. fiveDisksButton.on('pointerdown', function(pointer) {
  122. selectDisks(5, this);
  123. }, this);
  124. var fourDisksButton = this.add.sprite(1050, 200, 'fourDisks').setDisplaySize(200, 200).setInteractive({ useHandCursor: true });
  125. fourDisksButton.on('pointerdown', function(pointer) {
  126. selectDisks(4, this);
  127. }, this);
  128. var threeDisksButton = this.add.sprite(650, 200, 'threeDisks').setDisplaySize(200, 200).setInteractive({ useHandCursor: true });
  129. threeDisksButton.on('pointerdown', function(pointer) {
  130. selectDisks(3, this);
  131. }, this);
  132. var twoDisksButton = this.add.sprite(250, 200, 'twoDisks').setDisplaySize(200, 200).setInteractive({ useHandCursor: true });
  133. twoDisksButton.on('pointerdown', function(pointer) {
  134. selectDisks(2, this);
  135. }, this);
  136. }
  137. }
  138. var config = {
  139. type: Phaser.AUTO,
  140. scale: {
  141. mode: Phaser.Scale.FIT,
  142. width: 1320,
  143. height: 600
  144. },
  145. scene: [sceneGame, sceneDiskSelection]
  146. // canvas: doocument.querySelector('mainDiv');
  147. };
  148. var game = new Phaser.Game(config);