spawnRandomEnemy method

void spawnRandomEnemy()

Implementation

void spawnRandomEnemy() {
  /// Generate a random index within [_data] and get an [EnemyData].
  final randomIndex = _random.nextInt(_data.length);
  final enemyData = _data.elementAt(randomIndex);
  final enemy = Enemy(enemyData);

  // Help in setting all enemies on ground.
  enemy.anchor = Anchor.bottomLeft;
  enemy.position = Vector2(
    game.virtualSize.x + 32,
    game.virtualSize.y - 24,
  );

  // If this enemy can fly, set its y position randomly.
  if (enemyData.canFly) {
    final newHeight = _random.nextDouble() * 2 * enemyData.textureSize.y;
    enemy.position.y -= newHeight;
  }

  // Due to the size of our viewport, we can
  // use textureSize as size for the components.
  enemy.size = enemyData.textureSize;
  game.world.add(enemy);
}