let config = { type: Phaser.AUTO, width: 800, height: 600, parent: "game", physics: { default: 'arcade', arcade: { gravity: { y: 200 } } }, scene: { preload: preload, create: create, update: update } }; let platforms; let player; let cursors; let stars; let score = 0 let scoreText let bombs let gameOver = false let music; let scene; let game = new Phaser.Game(config); function preload() { this.load.spritesheet('player', 'assets/player.png', { frameWidth: 32, frameHeight: 48 }); this.load.image('sky', 'assets/sky.png'); this.load.image('platform', 'assets/platform.png'); this.load.image('star', 'assets/star.png'); this.load.image('bomb', 'assets/bomb.png'); this.load.audio('music', 'assets/music.mp3'); this.load.audio('collectstar', 'assets/collectstar.mp3') this.load.audio('mozg', 'assets/uf.mp3') } function create() { scene = this; this.add.image(400, 300, 'sky') player = this.physics.add.sprite(400, 100, 'player'); player.setBounce(0.19); player.setCollideWorldBounds(true); this.anims.create({ key: 'left', frames: this.anims.generateFrameNumbers('player', { start: 0, end: 3 }), frameRate: 10, repeat: -1 }); this.anims.create({ key: 'right', frames: this.anims.generateFrameNumbers('player', { start: 5, end: 8 }), frameRate: 10, repeat: -1 }); this.anims.create({ key: 'turn', frames: this.anims.generateFrameNumbers('player', { start: 4, end: 4 }), frameRate: 10 }); platforms = this.physics.add.staticGroup() platforms.create(600, 400, 'platform') platforms.create(50, 250, 'platform') platforms.create(750, 220, 'platform') platforms.create(400, 568, 'platform').setScale(2).refreshBody() this.physics.add.collider(player, platforms) cursors = this.input.keyboard.createCursorKeys() let starGroup = { key: 'star', repeat: 11, setXY: { x: 12, y: 0, stepX: 70 } }; stars = this.physics.add.group(starGroup) this.physics.add.collider(stars, platforms) this.physics.add.overlap(player, stars, collectStar, null, this) scoreText = this.add.text(13, 13, 'punkty: ', { fontSize: '31px', fill: '#gdf1f3' }) bombs = this.physics.add.group() let bomb = bombs.create(1, 16, 'bomb') bomb.setBounce(0.999999999999) bomb.setCollideWorldBounds(true) bomb.setVelocity(200, 200) this.physics.add.collider(bombs, platforms) this.physics.add.overlap(player, bombs, hitbomb, null, this) music = this.sound.add('music') music.play() } function collectStar(player, star) { star.disableBody(true, true) let collectStarSound = this.sound.add('collectstar') collectStarSound.play() score = score + 1 scoreText.setText('punkty: ' + score) console.log("colected") if (stars.countActive(true) === 0) { stars.children.iterate(function(child) { child.enableBody(true, child.x, 0, true, true) child.setBounceY(0.4); }) let x = player.x + 400; if (x > 800) { x -= 800 } let bomb = bombs.create(x, 16, 'bomb'); bomb.setBounce(1); bomb.setCollideWorldBounds(true); bomb.setVelocity(200, 200); } } function hitbomb(player, bomb) { player.setTint(0xff0101) this.physics.pause() gameOver = true this.add.text(400, 300, "GAME OVER", { fonSize: '32px', fill: '#ffffff' }) music.stop() let MozgSound = this.sound.add('mozg') MozgSound.play() let best = localStorage.getItem("BEST_SCORE"); if (score > best) localStorage.setItem("BEST_SCORE", score) showScoreOnSite(bestScore); } function showScoreOnSite(score) { document.getElementById("bestScore").innerHTML = "NAJLPSZYYYYYYYYYYYY!!!Y!Y!Y!!"+ score; } function update() { if (cursors.left.isDown) { player.setVelocityX(-175) player.anims.play('left', true) } else if (cursors.right.isDown) { player.setVelocityX(175) player.anims.play('right', true) } else { player.setVelocityX(0) player.anims.play('turn', true) } if (cursors.up.isDown && player.body.touching.down) { player.setVelocityY(-300) } } function restartGame(){ scene.scene.restart(); }