Vehicular Combat Game example
ere is an example of using the super
keyword in the context of a vehicular combat game in JavaScript:
class Vehicle {
constructor(x, y) {
this.x = x;
this.y = y;
this.health = 100;
}
move(x, y) {
this.x = x;
this.y = y;
}
attack(target) {
target.health -= 10;
console.log(`${this.constructor.name} attacks ${target.constructor.name} for 10 damage.`);
}
}
class Tank extends Vehicle {
constructor(x, y, turretX, turretY) {
super(x, y);
this.turretX = turretX;
this.turretY = turretY;
}
attack(target) {
const turretDistance = Math.sqrt(Math.pow(target.x - this.turretX, 2) + Math.pow(target.y - this.turretY, 2));
if (turretDistance <= 5) {
super.attack(target);
}
}
}
class Helicopter extends Vehicle {
constructor(x, y) {
super(x, y);
this.minAltitude = 10;
this.maxAltitude = 100;
}
move(x, y) {
super.move(x, y);
console.log(`${this.constructor.name} flies to (${x}, ${y}).`);
}
changeAltitude(altitude) {
if (altitude >= this.minAltitude && altitude <= this.maxAltitude) {
this.y = altitude;
console.log(`${this.constructor.name} changes altitude to ${altitude}.`);
}
}
}
const tank = new Tank(0, 0, 5, 5);
const helicopter = new Helicopter(10, 10);
helicopter.changeAltitude(50);
// Output: "Helicopter changes altitude to 50."
helicopter.move(5, 5);
// Output: "Helicopter flies to (5, 5)."
tank.attack(helicopter);
// Output: "Tank attacks Helicopter for 10 damage."
helicopter.changeAltitude(200);
// Output: "Altitude out of range."
In this example, the Vehicle
class has a constructor that accepts an x
and y
position, and sets the initial health of the vehicle to 100. It also has move
and attack
methods. The move
method sets the position of the vehicle to the specified x
and y
coordinates, and the attack
method reduces the target vehicle's health by 10.
The Tank
class extends the Vehicle
class and adds a constructor that accepts x
, y
, turretX
, and turretY
coordinates for the tank's body and turret. It also overrides the attack
method to check the distance between the target and the turret before attacking. If the distance is 5 or less, the tank can attack the target using the super.attack
method to call the attack
method of the helicopter.?
Last updated