const config = { type: Phaser.AUTO, width: 1280, height: 800, physics: { default: 'arcade', arcade: { gravity: { y: 300 }, debug: false } }, scene: { preload: preload, create: create, update: update } }; const game = new Phaser.Game(config); function preload() { this.load.image('background', 'assets/background.png'); this.load.image('ground', 'assets/platforms.png'); this.load.image('player', 'assets/player.png'); this.load.image('player2', 'assets/player2.png'); this.load.image('player_jump', 'assets/player_jump.png'); this.load.image('bricks', 'assets/bricks.png'); this.load.image('pee', 'assets/pee_test.png'); this.load.image('clay', 'assets/platform_clay.png'); // //Create an animation for walking left // this.anims.create({ // key: 'walkLeft', // frames: [ // { key: 'player'}, // { key: 'player2' } // ] // }); } let player, cursors, ground, platforms; function create() { // Add background image const background = this.add.image(0, 0, 'background').setOrigin(0, 0); background.scaleX = this.scale.width / background.width; background.scaleY = this.scale.height / background.height; background.setScrollFactor(0); // Create ground platforms = this.physics.add.staticGroup(); platforms.create(650, 750, 'ground') .setOffset(0, 50); // Add Bricks platforms.create(600, 600, 'bricks').setScale(.5).refreshBody(); platforms.create(1100, 400, 'bricks').setScale(.5).refreshBody(); platforms.create(900, 250, 'bricks').setScale(.5).refreshBody(); // Add Elevators //let elevators = this.physics.add.staticGroup(); let elevators = this.physics.add.image(400, 150, 'clay').setScale(.3).setOffset(0, 30); // Add Platforms platforms.create(1200, 500, 'ground') .setScale(.5) .refreshBody() .setSize(1296/2, 50) .setOffset(0, 25); platforms.create(350, 300, 'ground') .setScale(.5) .refreshBody() .setSize(1296/2, 50) .setOffset(0, 25); // Decorations decorations = this.physics.add.staticGroup(); decorations.create(100, 250, 'pee') .setScale(.10) .refreshBody(); // Create player player = this.physics.add.sprite(645, 450, 'player'); player.setBounce(0.2); player.setSize(100, 140); player.setOffset(30, 4); // Add controls cursors = this.input.keyboard.createCursorKeys(); // Add collision and sound this.physics.add.collider(player, platforms); //this.physics.add.collider(player, elevators); //this.sound.add('jump', { volume: 0.5 }); // Enable camera follow this.cameras.main.startFollow(player, true, 0, 0.1); this.tweens.add({ targets: elevators, y: -150, duration: 4000, repeat: -1, // Repeat infinitely yoyo: true, // Go back to the original position after reaching the target ease: 'Linear' // You can change this to other easing functions like 'Sine', 'Cubic', etc. }); } function update() { if (cursors.left.isDown && player.body.x > 0) { player.setVelocityX(-160); player.setFlipX(false); //player.anims.play('walkLeft', true); // Play walking animation } else if (cursors.right.isDown && player.body.x < 1280 - 100) { player.setVelocityX(160); player.setFlipX(true); } else { player.setVelocityX(0); } if (cursors.up.isDown && player.body.touching.down) { player.setVelocityY(-330); } if (player.body.velocity.y > -1) { player.setTexture('player'); // Change texture back to normal when touching the ground } else { player.setTexture('player_jump'); // Change texture to jump } }