| 
							 | 
						<!doctype html>  | 
					
					
						
						| 
							 | 
						<html lang="en">  | 
					
					
						
						| 
							 | 
						<head>  | 
					
					
						
						| 
							 | 
						    <meta charset="UTF-8" /> | 
					
					
						
						| 
							 | 
						    <title>Game Test</title> | 
					
					
						
						| 
							 | 
						    <script src="//cdn.jsdelivr.net/npm/[email protected]/dist/phaser.js"></script> | 
					
					
						
						| 
							 | 
						    <style type="text/css"> | 
					
					
						
						| 
							 | 
						        body { | 
					
					
						
						| 
							 | 
						            margin: 0; | 
					
					
						
						| 
							 | 
						        } | 
					
					
						
						| 
							 | 
						    </style> | 
					
					
						
						| 
							 | 
						</head> | 
					
					
						
						| 
							 | 
						<body> | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						<script type="text/javascript"> | 
					
					
						
						| 
							 | 
						var config = { | 
					
					
						
						| 
							 | 
						    type: Phaser.AUTO, | 
					
					
						
						| 
							 | 
						    width: 800, | 
					
					
						
						| 
							 | 
						    height: 600, | 
					
					
						
						| 
							 | 
						    physics: { | 
					
					
						
						| 
							 | 
						        default: 'arcade', | 
					
					
						
						| 
							 | 
						        arcade: { | 
					
					
						
						| 
							 | 
						            gravity: { y: 300 }, | 
					
					
						
						| 
							 | 
						            debug: false | 
					
					
						
						| 
							 | 
						        } | 
					
					
						
						| 
							 | 
						    }, | 
					
					
						
						| 
							 | 
						    scene: { | 
					
					
						
						| 
							 | 
						        preload: preload, | 
					
					
						
						| 
							 | 
						        create: create, | 
					
					
						
						| 
							 | 
						        update: update | 
					
					
						
						| 
							 | 
						    } | 
					
					
						
						| 
							 | 
						}; | 
					
					
						
						| 
							 | 
						var player; | 
					
					
						
						| 
							 | 
						var stars; | 
					
					
						
						| 
							 | 
						var bombs; | 
					
					
						
						| 
							 | 
						var platforms; | 
					
					
						
						| 
							 | 
						var cursors; | 
					
					
						
						| 
							 | 
						var score = 0; | 
					
					
						
						| 
							 | 
						var gameOver = false; | 
					
					
						
						| 
							 | 
						var scoreText; | 
					
					
						
						| 
							 | 
						var game = new Phaser.Game(config); | 
					
					
						
						| 
							 | 
						const queryString = window.location.search; | 
					
					
						
						| 
							 | 
						const urlParams = new URLSearchParams(queryString); | 
					
					
						
						| 
							 | 
						const sky_img = urlParams.get("sky"); | 
					
					
						
						| 
							 | 
						const platform_img = urlParams.get("platform"); | 
					
					
						
						| 
							 | 
						const star_img = urlParams.get("star"); | 
					
					
						
						| 
							 | 
						const bomb_img = urlParams.get("bomb"); | 
					
					
						
						| 
							 | 
						const dude_img = urlParams.get("dude"); | 
					
					
						
						| 
							 | 
						   | 
					
					
						
						| 
							 | 
						console.log(sky_img); | 
					
					
						
						| 
							 | 
						console.log(platform_img); | 
					
					
						
						| 
							 | 
						console.log(star_img); | 
					
					
						
						| 
							 | 
						console.log(bomb_img); | 
					
					
						
						| 
							 | 
						console.log(dude_img); | 
					
					
						
						| 
							 | 
						   | 
					
					
						
						| 
							 | 
						function preload () | 
					
					
						
						| 
							 | 
						{ | 
					
					
						
						| 
							 | 
						    this.load.image('sky', sky_img); | 
					
					
						
						| 
							 | 
						    this.load.image('ground', platform_img); | 
					
					
						
						| 
							 | 
						    this.load.image('star', star_img); | 
					
					
						
						| 
							 | 
						    this.load.image('bomb', bomb_img); | 
					
					
						
						| 
							 | 
						    this.load.spritesheet('dude', dude_img, {frameWidth: 32, frameHeight: 48 }); | 
					
					
						
						| 
							 | 
						} | 
					
					
						
						| 
							 | 
						function create () | 
					
					
						
						| 
							 | 
						{ | 
					
					
						
						| 
							 | 
						    this.add.image(0, 0, 'sky').setOrigin(0,0); | 
					
					
						
						| 
							 | 
						    platforms = this.physics.add.staticGroup(); | 
					
					
						
						| 
							 | 
						    platforms.create(400, 568, 'ground').setScale(2).refreshBody(); | 
					
					
						
						| 
							 | 
						    platforms.create(600, 400, 'ground'); | 
					
					
						
						| 
							 | 
						    platforms.create(50, 250, 'ground'); | 
					
					
						
						| 
							 | 
						    platforms.create(750, 220, 'ground'); | 
					
					
						
						| 
							 | 
						    player = this.physics.add.sprite(100, 450, 'dude'); | 
					
					
						
						| 
							 | 
						    player.setBounce(0.2); | 
					
					
						
						| 
							 | 
						    player.setCollideWorldBounds(true); | 
					
					
						
						| 
							 | 
						    this.anims.create({ | 
					
					
						
						| 
							 | 
						        key: 'left', | 
					
					
						
						| 
							 | 
						        frames: this.anims.generateFrameNumbers('dude', { start: 0, end: 3 }), | 
					
					
						
						| 
							 | 
						        frameRate: 10, | 
					
					
						
						| 
							 | 
						        repeat: -1 | 
					
					
						
						| 
							 | 
						    }); | 
					
					
						
						| 
							 | 
						    this.anims.create({ | 
					
					
						
						| 
							 | 
						        key: 'turn', | 
					
					
						
						| 
							 | 
						        frames: [ { key: 'dude', frame: 4 } ], | 
					
					
						
						| 
							 | 
						        frameRate: 20 | 
					
					
						
						| 
							 | 
						    }); | 
					
					
						
						| 
							 | 
						    this.anims.create({ | 
					
					
						
						| 
							 | 
						        key: 'right', | 
					
					
						
						| 
							 | 
						        frames: this.anims.generateFrameNumbers('dude', { start: 5, end: 8 }), | 
					
					
						
						| 
							 | 
						        frameRate: 10, | 
					
					
						
						| 
							 | 
						        repeat: -1 | 
					
					
						
						| 
							 | 
						    }); | 
					
					
						
						| 
							 | 
						    cursors = this.input.keyboard.createCursorKeys(); | 
					
					
						
						| 
							 | 
						    stars = this.physics.add.group({ | 
					
					
						
						| 
							 | 
						        key: 'star', | 
					
					
						
						| 
							 | 
						        repeat: 11, | 
					
					
						
						| 
							 | 
						        setXY: { x: 12, y: 0, stepX: 70 } | 
					
					
						
						| 
							 | 
						    }); | 
					
					
						
						| 
							 | 
						    stars.children.iterate(function (child) { | 
					
					
						
						| 
							 | 
						        child.setBounceY(Phaser.Math.FloatBetween(0.4, 0.8)); | 
					
					
						
						| 
							 | 
						    }); | 
					
					
						
						| 
							 | 
						    bombs = this.physics.add.group(); | 
					
					
						
						| 
							 | 
						    scoreText = this.add.text(16, 16, 'score: 0', { fontSize: '32px', fill: '#000' }); | 
					
					
						
						| 
							 | 
						    this.physics.add.collider(player, platforms); | 
					
					
						
						| 
							 | 
						    this.physics.add.collider(stars, platforms); | 
					
					
						
						| 
							 | 
						    this.physics.add.collider(bombs, platforms); | 
					
					
						
						| 
							 | 
						    this.physics.add.overlap(player, stars, collectStar, null, this); | 
					
					
						
						| 
							 | 
						    this.physics.add.collider(player, bombs, hitBomb, null, this); | 
					
					
						
						| 
							 | 
						} | 
					
					
						
						| 
							 | 
						function update () | 
					
					
						
						| 
							 | 
						{ | 
					
					
						
						| 
							 | 
						    if (gameOver) | 
					
					
						
						| 
							 | 
						    {    | 
					
					
						
						| 
							 | 
						        return; | 
					
					
						
						| 
							 | 
						    } | 
					
					
						
						| 
							 | 
						    if (cursors.left.isDown) | 
					
					
						
						| 
							 | 
						    { | 
					
					
						
						| 
							 | 
						        player.setVelocityX(-160); | 
					
					
						
						| 
							 | 
						        player.anims.play('left', true); | 
					
					
						
						| 
							 | 
						    } | 
					
					
						
						| 
							 | 
						    else if (cursors.right.isDown) | 
					
					
						
						| 
							 | 
						    { | 
					
					
						
						| 
							 | 
						        player.setVelocityX(160); | 
					
					
						
						| 
							 | 
						        player.anims.play('right', true); | 
					
					
						
						| 
							 | 
						    } | 
					
					
						
						| 
							 | 
						    else | 
					
					
						
						| 
							 | 
						    { | 
					
					
						
						| 
							 | 
						        player.setVelocityX(0); | 
					
					
						
						| 
							 | 
						        player.anims.play('turn'); | 
					
					
						
						| 
							 | 
						    } | 
					
					
						
						| 
							 | 
						    if (cursors.up.isDown && player.body.touching.down) | 
					
					
						
						| 
							 | 
						    { | 
					
					
						
						| 
							 | 
						        player.setVelocityY(-330); | 
					
					
						
						| 
							 | 
						    } | 
					
					
						
						| 
							 | 
						} | 
					
					
						
						| 
							 | 
						function collectStar (player, star) | 
					
					
						
						| 
							 | 
						{ | 
					
					
						
						| 
							 | 
						    star.disableBody(true, true); | 
					
					
						
						| 
							 | 
						     | 
					
					
						
						| 
							 | 
						    score += 10; | 
					
					
						
						| 
							 | 
						    scoreText.setText('Score: ' + score); | 
					
					
						
						| 
							 | 
						    document.getElementById('my_score').innerHTML = score; | 
					
					
						
						| 
							 | 
						    if (stars.countActive(true) === 0) | 
					
					
						
						| 
							 | 
						    { | 
					
					
						
						| 
							 | 
						         | 
					
					
						
						| 
							 | 
						        stars.children.iterate(function (child) { | 
					
					
						
						| 
							 | 
						            child.enableBody(true, child.x, 0, true, true); | 
					
					
						
						| 
							 | 
						        }); | 
					
					
						
						| 
							 | 
						        var x = (player.x < 400) ? Phaser.Math.Between(400, 800) : Phaser.Math.Between(0, 400); | 
					
					
						
						| 
							 | 
						        var bomb = bombs.create(x, 16, 'bomb'); | 
					
					
						
						| 
							 | 
						        bomb.setBounce(1); | 
					
					
						
						| 
							 | 
						        bomb.setCollideWorldBounds(true); | 
					
					
						
						| 
							 | 
						        bomb.setVelocity(Phaser.Math.Between(-200, 200), 20); | 
					
					
						
						| 
							 | 
						        bomb.allowGravity = false; | 
					
					
						
						| 
							 | 
						    } | 
					
					
						
						| 
							 | 
						} | 
					
					
						
						| 
							 | 
						function hitBomb (player, bomb) | 
					
					
						
						| 
							 | 
						{ | 
					
					
						
						| 
							 | 
						    this.physics.pause(); | 
					
					
						
						| 
							 | 
						    player.setTint(0xff0000); | 
					
					
						
						| 
							 | 
						    player.anims.play('turn'); | 
					
					
						
						| 
							 | 
						    var mainCamera = this.cameras.main | 
					
					
						
						| 
							 | 
						    mainCamera.shake(250); | 
					
					
						
						| 
							 | 
						    mainCamera.fadeOut(3000);   | 
					
					
						
						| 
							 | 
						    | 
					
					
						
						| 
							 | 
						    gameOver = true; | 
					
					
						
						| 
							 | 
						} | 
					
					
						
						| 
							 | 
						</script> | 
					
					
						
						| 
							 | 
						<div> | 
					
					
						
						| 
							 | 
						<p hidden id="my_score"></p> | 
					
					
						
						| 
							 | 
						</div> | 
					
					
						
						| 
							 | 
						</body> | 
					
					
						
						| 
							 | 
						</html> |