std::vector<Bullet*> AssaultRifleBarrelModifier::Fire(vec2 aPosition, vec2 aDirection, std::vector<BulletModifier*> aBulletModifiers) { Bullet* bullet = GetGameScene()->GetBullet(); vec2 velocity = aDirection; bullet->Initialize(aPosition, velocity, aBulletModifiers); GetGameScene()->AddGameObject(bullet, bullet->GetName()); std::vector<Bullet*> bullets; bullets.push_back(bullet); return bullets; }
void PlayerCenter::Update() { Sprite::Update(); auto engine = STGEngine::GetInstance(); auto scene = engine->GetGameScene(); auto player = engine->GetPlayer(); Vector3f pos = player->GetPosition(); pos.z = 1.0f; SetPosition(pos); if (state == ARISE) { alpha += 1.0f / ARISE_TIME; if (alpha >= 1.0f) { state = NORMAL; alpha = 1.0f; } } else if (state == DISAPPEAR) { alpha -= 1.0f / DISAPPEAR_TIME; if (alpha < 0.0f) { MarkDestroy(); } } }
void Stage01::InitBackground() { auto engine = STGEngine::GetInstance(); auto background = engine->GetGameScene()->GetBackgroundLayer(); SetupCamera(); SetupFog(); background->SetSkyBox(sky); background->EnableLighting(true); background->SetAmbientLight(Vector4f(0.3f, 0.3f, 0.3f, 1.0f)); background->AddLight(Ptr<DirectionalLight>::New(Vector3f(1.8f, 1.8f, 1.8f), Vector3f(1.0f, -1.0f, 0.0f)).Get()); InitBackgroundObjects(); }