Movement improvements

This commit is contained in:
Martin
2022-12-12 12:04:31 +01:00
parent f7b345ef93
commit 2077c2e1c8
9 changed files with 92 additions and 14 deletions

View File

@@ -6,7 +6,12 @@ import { EnemySpawner } from "./EnemySpawner";
export class CircularEnemySpawner {
private spawnTimer: GameTimer = new GameTimer(10);
public constructor(private enemySpawner: EnemySpawner, private enemiesToSpawn: number, private enemyType: EnemyType) {}
public constructor(
private enemySpawner: EnemySpawner,
private enemiesToSpawn: number,
private movementType: EnemyMovementType,
private enemyType: EnemyType
) {}
public gameTick(deltaTime: number): void {
this.spawnTimer.gameTick(deltaTime);
@@ -16,7 +21,7 @@ export class CircularEnemySpawner {
for (let i = 0; i < this.enemiesToSpawn; i++) {
const posX: number = roundToOneDecimal(Math.sin(angle * i)) * 500;
const posY: number = roundToOneDecimal(Math.cos(angle * i)) * 500;
this.enemySpawner.spawnNewEnemy(posX, posY, EnemyMovementType.Follow);
this.enemySpawner.spawnNewEnemy(posX, posY, this.movementType);
}
}
}

View File

@@ -8,14 +8,14 @@ import { EnemySpawner } from "./EnemySpawner";
export class IndividualEnemySpawner {
private spawnTimer: GameTimer = new GameTimer(1);
public constructor(private enemySpawner: EnemySpawner, private enemyType: EnemyType) {}
public constructor(private enemySpawner: EnemySpawner, private movementType: EnemyMovementType, private enemyType: EnemyType) {}
public gameTick(deltaTime: number): void {
this.spawnTimer.gameTick(deltaTime);
if (this.spawnTimer.tryFinishPeriod()) {
const posX: number = randomRange(300, 600) * randomPositiveOrNegative();
const posY: number = randomRange(300, 600) * randomPositiveOrNegative();
this.enemySpawner.spawnNewEnemy(posX, posY, EnemyMovementType.Follow);
this.enemySpawner.spawnNewEnemy(posX, posY, this.movementType);
}
}
}

View File

@@ -10,6 +10,7 @@ import { EnemySpawner } from "./EnemySpawner";
export class WaveEnemySpawner {
private enemiesPerWave: number;
private waveLifetime: number;
private moveType: EnemyMovementType;
private enemyType: EnemyType;
private spawnTimer: GameTimer;
@@ -19,6 +20,7 @@ export class WaveEnemySpawner {
this.spawnTimer = new GameTimer(settings.cooldown);
this.enemiesPerWave = settings.enemiesPerWave;
this.waveLifetime = settings.waveLifetime;
this.moveType = <EnemyMovementType>settings.moveType;
this.enemyType = <EnemyType>settings.enemyType;
}