Platformer Game Example

Here is an example of using classes in the context of a platform game:

class GameObject {
  constructor(x, y, width, height) {
    this.x = x;
    this.y = y;
    this.width = width;
    this.height = height;
  }

  // Method to check if this object is colliding with another object
  isCollidingWith(otherObject) {
    return (
      this.x < otherObject.x + otherObject.width &&
      this.x + this.width > otherObject.x &&
      this.y < otherObject.y + otherObject.height &&
      this.y + this.height > otherObject.y
    );
  }
}

class Player extends GameObject {
  constructor(x, y, width, height, speed) {
    super(x, y, width, height);
    this.speed = speed;
  }

  moveLeft() {
    this.x -= this.speed;
  }

  moveRight() {
    this.x += this.speed;
  }

  jump() {
    this.y -= this.speed * 2;
  }
}

class Platform extends GameObject {
  constructor(x, y, width, height) {
    super(x, y, width, height);
  }
}

const player = new Player(100, 100, 50, 50, 5);
const platform = new Platform(200, 150, 100, 10);

// Check if the player is colliding with the platform
console.log(player.isCollidingWith(platform));  // true

// Move the player to the left
player.moveLeft();

// Check if the player is colliding with the platform
console.log(player.isCollidingWith(platform));  // false

// Jump the player
player.jump();

// Check if the player is colliding with the platform
console.log(player.isCollidingWith(platform));  // false

In this example, we have a GameObject class that represents any object in the game. It has a constructor function that takes the x, y, width, and height properties of the object, and a method called isCollidingWith that checks if this object is colliding with another object.

We then have a Player class that extends the GameObject class, adding a speed property and methods for moving the player left, right, and jumping.

We also have a Platform class that also extends the GameObject class, but does not add any additional properties or methods.

We create a player object and a platform object, and use the isCollidingWith method to check if the player is colliding with the platform. We then move the player to the left and jump, and check the collision again to see how it changes

Last updated