| |
| var game; |
|
|
| var gameOptions = { |
|
|
| |
| slices: 6, |
|
|
| |
| slicePrizes: [ |
| "π 5% OFF", |
| "π 10% OFF", |
| "π 15% OFF", |
| "π 25% OFF", |
| "π 50% OFF", |
| "π FREE PASTRY π°" |
| ], |
|
|
| |
| rotationTime: 3000 |
| } |
|
|
| |
| window.onload = function () { |
|
|
| |
| var gameConfig = { |
|
|
| |
| type: Phaser.CANVAS, |
|
|
| |
| width: 850, |
|
|
| |
| height: 850, |
|
|
| |
| backgroundColor: 0x880044, |
|
|
| |
| scene: [playGame] |
| }; |
|
|
| |
| game = new Phaser.Game(gameConfig); |
|
|
| |
| window.focus() |
| resize(); |
| window.addEventListener("resize", resize, false); |
| } |
|
|
| |
| class playGame extends Phaser.Scene { |
|
|
| |
| constructor() { |
| super("PlayGame"); |
| } |
|
|
| |
| preload() { |
|
|
| this.load.image("wheel", window.location.href + "images/wheel.png"); |
| this.load.image("pin", window.location.href + "images/pin.png"); |
| } |
|
|
| |
| create() { |
|
|
| |
| this.wheel = this.add.sprite(game.config.width / 2, game.config.height / 2, "wheel"); |
|
|
| |
| this.pin = this.add.sprite(game.config.width / 2, game.config.height / 2, "pin"); |
|
|
| |
| this.prizeText = this.add.text(game.config.width / 2, game.config.height - 35, "SPIN TO WIN", { |
| font: "bold 64px Rajdhani", |
| align: "center", |
| color: "white" |
| }); |
|
|
| |
| this.prizeText.setOrigin(0.5); |
|
|
| |
| this.canSpin = true; |
|
|
| |
| this.input.on("pointerdown", this.spinWheel, this); |
| } |
|
|
| |
| spinWheel() { |
|
|
| |
| if (this.canSpin) { |
|
|
| |
| this.prizeText.setText(""); |
|
|
| |
| var rounds = Phaser.Math.Between(4, 6); |
|
|
| |
| var degrees = Phaser.Math.Between(0, 360); |
|
|
| |
| var prize = gameOptions.slices - 1 - Math.floor(degrees / (360 / gameOptions.slices)); |
|
|
| |
| this.canSpin = false; |
|
|
| |
| |
| this.tweens.add({ |
|
|
| |
| targets: [this.wheel], |
|
|
| |
| angle: 360 * rounds + degrees, |
|
|
| |
| duration: gameOptions.rotationTime, |
|
|
| |
| ease: "Cubic.easeOut", |
|
|
| |
| callbackScope: this, |
|
|
| |
| onComplete: function (tween) { |
| |
| this.prizeText.setText(gameOptions.slicePrizes[prize]); |
|
|
| |
| this.canSpin = false; |
| } |
| }); |
| } |
| } |
| } |
|
|
| |
| function resize() { |
| var canvas = document.querySelector("canvas"); |
| var windowWidth = window.innerWidth; |
| var windowHeight = window.innerHeight; |
| var windowRatio = windowWidth / windowHeight; |
| var gameRatio = game.config.width / game.config.height; |
| if (windowRatio < gameRatio) { |
| canvas.style.width = windowWidth + "px"; |
| canvas.style.height = (windowWidth / gameRatio) + "px"; |
| } |
| else { |
| canvas.style.width = (windowHeight * gameRatio) + "px"; |
| canvas.style.height = windowHeight + "px"; |
| } |
| } |