コード例 #1
0
void ProjectileSpawner::spawn(int projectileCount, const glm::vec2& position, const glm::vec2& velocity, float angle) {
  Game* gameInstance = Game::GetInstance();

  for(int i = 0; i < projectileCount; i++) {
    Projectile* projectile = new Projectile(0, glm::vec4(0.0f, 0.0f, 1.0f, 1.0f),
                                            _projectileWidth, _projectileHeight, glm::vec2(position.x, position.y), angle, _source, _projectileDamage);
    projectile->setSkin(_projectileSkin);
    projectile->createB2Data();
    projectile->setVelocity(velocity * _projectileVelocity);
    projectile->spawn();
    gameInstance->getGameplayScreen()->getProjectileManager()->add(projectile);

    if(_playSound) {
      gameInstance->getAudioManager()->playEvent("event:/effects/laser_shot", true);
    }
  }
}