123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 |
- var towerA = [],
- towerB = [],
- towerC = [];
- var diskQntity = 3,
- nMoves, nCurrentMoves = 0,
- minimumMoves = Math.pow(2, diskQntity) - 1;
- var textsFont = { fontFamily: 'Arial', fontSize: 50, color: '#5cff5c' };
- var gameWonMsg, nMoves;
- var redoButton, undoButton, restartButton, diskSelectorButton;
- var scene, tween;
- var wrongMoveSprite;
- var outputMsgBox;
- class sceneGame extends Phaser.Scene {
- constructor() {
- super({ key: 'sceneGame' });
- }
- preload() {
- scene = this;
- this.load.image('sky', 'assets/sky.png');
- this.load.image('acoesBox', 'assets/acoes.png');
- //this.load.image('base', 'assets/baseText.png');
- this.load.image('torre', 'assets/torre.png');
- this.load.image('selectionArea', 'assets/selectionArea.png');
- //buttons
- this.load.image('redo', 'assets/redo2.png');
- this.load.image('redoDisabled', 'assets/redoDisabled2.png');
- this.load.image('msgBox', 'assets/msgBox.png')
- this.load.image('undo', 'assets/undo2.png');
- this.load.image('undoDisabled', 'assets/undoDisabled2.png');
- this.load.image('restart', 'assets/restart.png');
- this.load.image('wrongMove', 'assets/wrongMove.png');
- //Only loads disk selection if its the teacher using
- try {
- if (iLMparameters.iLM_PARAM_SendAnswer == 'true')
- this.load.image('diskSelector', 'assets/diskSelector.png');
- console.log("iAssign version");
- } catch (e) {
- this.load.image('diskSelector', 'assets/diskSelector.png');
- console.log("web-version");
- }
- //load all imgs needed for the exercise
- for (var i = 0; i < 6; i++) {
- this.load.image('disk' + i, 'assets/disk' + i + '.png')
- this.load.image('stroked' + i, 'assets/strokedDisks/stroked' + i + '.png')
- }
- }
- create() {
- //misc
- this.add.image(0, 0, 'sky').setOrigin(0).setDisplaySize(1320, 600);
- this.add.sprite(120, 90, 'acoesBox').setDisplaySize(80, 70);
- nMoves = this.add.text(90, 70, 0, textsFont);
- this.add.text(135, 530, 'Torre A', {fontFamily: 'Arial', fontSize: 50, color: '#4c0fbd'} );
- this.add.text(570, 530, 'Torre B', {fontFamily: 'Arial', fontSize: 50, color: '#4c0fbd'} );
- this.add.text(1005, 530, 'Torre C', {fontFamily: 'Arial', fontSize: 50, color: '#4c0fbd'} );
-
- //buttons
- redoButton = this.add.sprite(720, 90, 'redoDisabled').setDisplaySize(80, 70); //.setInteractive({useHandCursor: false});
- redoButton.on('pointerdown', function(pointer) {
- redoMove();
- });
- undoButton = this.add.sprite(600, 90, 'undoDisabled').setDisplaySize(80, 70); //.setInteractive({useHandCursor: false});
- undoButton.on('pointerdown', function(pointer) {
- undoMove();
- });
- restartButton = this.add.sprite(990, 90, 'restart').setDisplaySize(80, 60).setInteractive({ useHandCursor: true });
- restartButton.on('pointerdown', function(pointer) {
- restart();
- });
- diskSelectorButton = this.add.sprite(1200, 90, 'diskSelector').setDisplaySize(80, 70).setInteractive({ useHandCursor: true });
- diskSelectorButton.on('pointerdown', function(pointer) {
- this.scene.start('sceneDiskSelection');
- }, this);
- //Towers
- this.add.image(219, 320, 'torre').setScale(0.13);
- this.add.image(654, 320, 'torre').setScale(0.13);
- this.add.image(1089, 320, 'torre').setScale(0.13);
- //Disks
- var diskX = 220,
- diskY = 430;
- for (var i = diskQntity - 1; i >= 0; i--) {
- towerA[diskQntity - 1 - i] = this.add.sprite(diskX, diskY, 'disk' + i).setScale(0.13); //.setDisplaySize(diskWidth, diskHeight);
- diskY -= 28;
- }
- //towerA Selection Area
- var towerASelectionArea = this.add.sprite(220, 375, 'selectionArea').setDisplaySize(400, 320).setInteractive({ useHandCursor: true });
- towerASelectionArea.on('pointerdown', function(pointer) {
- selectA();
- });
- towerASelectionArea.alpha = 0.1;
- //towerB selectionArea
- var towerBSelectionArea = this.add.sprite(655, 375, 'selectionArea').setDisplaySize(400, 320).setInteractive({ useHandCursor: true });
- towerBSelectionArea.on('pointerdown', function(pointer) {
- selectB();
- });
- towerBSelectionArea.alpha = 0.1;
- var towerCSelectionArea = this.add.sprite(1090, 375, 'selectionArea').setDisplaySize(400, 320).setInteractive({ useHandCursor: true });
- towerCSelectionArea.on('pointerdown', function(pointer) {
- selectC();
- });
- towerCSelectionArea.alpha = 0.1;
- wrongMoveSprite = this.add.sprite(220, 300, 'wrongMove').setDisplaySize(100, 100).setAlpha(0);
- outputMsgBox = this.add.sprite(655, 310, 'msgBox').setDisplaySize(550,180);
- outputMsgBox.alpha = 0;
- gameWonMsg = this.add.text(450, 255, ' ', { fontFamily: 'Arial', fontSize: 22, color: '#00a600', align: 'center' });
-
- }
- update() {}
- event() {
- console.log('over');
- }
- }
- class sceneDiskSelection extends Phaser.Scene {
- constructor() {
- super({ key: 'sceneDiskSelection' });
- }
- preload() {
- this.load.image('sixDisks', 'assets/diskSelection/sixDisks.png');
- this.load.image('fiveDisks', 'assets/diskSelection/fiveDisks.png');
- this.load.image('fourDisks', 'assets/diskSelection/fourDisks.png');
- this.load.image('threeDisks', 'assets/diskSelection/threeDisks.png');
- this.load.image('twoDisks', 'assets/diskSelection/twoDisks.png');
- }
- create() {
- this.add.image(0, 0, 'sky').setOrigin(0).setDisplaySize(1320, 600);
- var sixDisksButton = this.add.sprite(850, 450, 'sixDisks').setDisplaySize(200, 200).setInteractive({ useHandCursor: true });
- sixDisksButton.on('pointerdown', function(pointer) {
- selectDisks(6, this);
- }, this);
- var fiveDisksButton = this.add.sprite(450, 450, 'fiveDisks').setDisplaySize(200, 200).setInteractive({ useHandCursor: true });
- fiveDisksButton.on('pointerdown', function(pointer) {
- selectDisks(5, this);
- }, this);
- var fourDisksButton = this.add.sprite(1050, 200, 'fourDisks').setDisplaySize(200, 200).setInteractive({ useHandCursor: true });
- fourDisksButton.on('pointerdown', function(pointer) {
- selectDisks(4, this);
- }, this);
- var threeDisksButton = this.add.sprite(650, 200, 'threeDisks').setDisplaySize(200, 200).setInteractive({ useHandCursor: true });
- threeDisksButton.on('pointerdown', function(pointer) {
- selectDisks(3, this);
- }, this);
- var twoDisksButton = this.add.sprite(250, 200, 'twoDisks').setDisplaySize(200, 200).setInteractive({ useHandCursor: true });
- twoDisksButton.on('pointerdown', function(pointer) {
- selectDisks(2, this);
- }, this);
- }
- }
- var config = {
- type: Phaser.AUTO,
- scale: {
- mode: Phaser.Scale.FIT,
- width: 1320,
- height: 600
- },
- scene: [sceneGame, sceneDiskSelection]
- // canvas: doocument.querySelector('mainDiv');
- };
- var game = new Phaser.Game(config);
|