Untitled

 avatar
unknown
plain_text
2 months ago
1.5 kB
1
Indexable
// Game Setup
let game = new Phaser.Game(config);
let player, fuel, credits, obstacles, packages;

// Main Scene
class MainScene extends Phaser.Scene {
  preload() {
    this.load.image('ship', 'assets/ship.png');
    this.load.image('asteroid', 'assets/asteroid.png');
    this.load.image('fuelPod', 'assets/fuel.png');
  }

  create() {
    // Player Ship
    player = this.physics.add.sprite(400, 300, 'ship');
    player.setCollideWorldBounds(true);

    // Obstacles
    obstacles = this.physics.add.group();
    for (let i = 0; i < 10; i++) {
      obstacles.create(Phaser.Math.Between(0, 800), Phaser.Math.Between(0, 600), 'asteroid');
    }

    // Fuel Pods
    fuelPods = this.physics.add.group();
    fuelPods.createMultiple({ key: 'fuelPod', repeat: 5, setXY: { x: 100, y: 100, stepX: 150 } });

    // Collisions
    this.physics.add.collider(player, obstacles, hitObstacle, null, this);
    this.physics.add.overlap(player, fuelPods, collectFuel, null, this);
  }

  update() {
    // Player Movement
    if (cursors.left.isDown) player.setVelocityX(-200);
    else if (cursors.right.isDown) player.setVelocityX(200);
    else player.setVelocityX(0);

    // Fuel Depletion
    fuel -= 0.1;
    if (fuel <= 0) gameOver();
  }
}

function hitObstacle(player, obstacle) {
  cargoHealth -= 10;
  obstacle.destroy();
}

function collectFuel(player, fuelPod) {
  fuel += 20;
  fuelPod.destroy();
}
Editor is loading...
Leave a Comment