#include "stdafx.h" #include "MenuScene.h" #include "GameplayScene.h" MenuScene::MenuScene() : GameScene(L"MenuScene") {} void MenuScene::Initialize() { m_SceneContext.settings.showInfoOverlay = false; m_SceneContext.settings.drawPhysXDebug = false; m_SceneContext.settings.drawGrid = false; m_SceneContext.settings.enableOnGUI = false; auto pBackground = new GameObject(); pBackground->AddComponent(new SpriteComponent(L"Textures/Bomberman/Menu/Background.png", { 0, 0 }, { 1.f,1.f,1.f,1.f })); AddChild(pBackground); pBackground->GetTransform()->Translate(0, 0, 1.f); auto pOverlay = new GameObject(); pOverlay->AddComponent(new SpriteComponent(L"Textures/Bomberman/Menu/Overlay.png", { 0, 0 }, { 1.f,1.f,1.f,1.f })); AddChild(pOverlay); pOverlay->GetTransform()->Translate(0, 0, 1.f); m_pLogo = new GameObject(); m_pLogo->AddComponent(new SpriteComponent(L"Textures/Bomberman/Menu/Logo.png", { 0.5f, 0.5f }, { 1.f,1.f,1.f,1.f })); AddChild(m_pLogo); m_pLogo->GetTransform()->Translate(1166 / 2.f, 130.f, 1.f); m_pPlayButton = new GameObject(); m_pPlayButton->AddComponent(new SpriteComponent(L"Textures/Bomberman/Menu/Play_On.png", { 0.5f, 0.5f }, { 1.f,1.f,1.f,1.f })); AddChild(m_pPlayButton); m_pPlayButton->GetTransform()->Translate(880.f, 565.f, 1.f); m_pQuitButton = new GameObject(); m_pQuitButton->AddComponent(new SpriteComponent(L"Textures/Bomberman/Menu/Exit_Off.png", { 0.5f, 0.5f }, { 1.f,1.f,1.f,1.f })); AddChild(m_pQuitButton); m_pQuitButton->GetTransform()->Translate(280.f, 565.f, 1.f); m_pQuitButton->GetTransform()->Scale(0.8f); //LIGHTS m_SceneContext.pLights->SetDirectionalLight({ 382.274f, 218.735f, -181.521f }, { -0.434507f, -0.781122f, 0.448389f }); //auto& physx = PxGetPhysics(); //Physics Materials //auto pDefaultMat = physx.createMaterial(.5f, .5f, .5f); //CAMERA //const auto pCamera = m_SceneContext.pCamera; auto pCamera = AddChild(new FixedCamera()); //auto m_pCameraTransform = pCamera->GetTransform(); auto m_pCameraComponent = pCamera->GetComponent(); m_pCameraComponent->SetActive(true); //INPUTS m_SceneContext.pInput->AddInputAction(InputAction(0, InputState::down, 'A')); m_SceneContext.pInput->AddInputAction(InputAction(1, InputState::down, 'D')); m_SceneContext.pInput->AddInputAction(InputAction(2, InputState::pressed, VK_SPACE, - 1, XINPUT_GAMEPAD_A)); m_SceneContext.pInput->AddInputAction(InputAction(3, InputState::pressed, VK_RETURN)); } void MenuScene::Update() { const float totalSec = m_SceneContext.pGameTime->GetTotal(); float scale = sinf(totalSec * XM_PI * .66f) * .1f; m_pLogo->GetTransform()->Scale(1 + scale, 1 + scale, 1); if (m_SceneContext.pInput->IsActionTriggered(0) || InputManager::GetThumbstickPosition().x < 0) { m_pQuitButton->GetComponent()->SetTexture(L"Textures/Bomberman/Menu/Exit_On.png"); m_pQuitButton->GetTransform()->Scale(1); m_pPlayButton->GetComponent()->SetTexture(L"Textures/Bomberman/Menu/Play_Off.png"); m_pPlayButton->GetTransform()->Scale(.8f); if (m_SelectedUI != 1) { //sfx FMOD::Sound* sound; auto fmodSystem = SoundManager::Get()->GetSystem(); fmodSystem->createSound("Resources/Sounds/menu_select.wav", FMOD_DEFAULT, 0, &sound); fmodSystem->playSound(sound, 0, false, 0); } m_SelectedUI = 1; } if (m_SceneContext.pInput->IsActionTriggered(1) || InputManager::GetThumbstickPosition().x > 0) { m_pPlayButton->GetComponent()->SetTexture(L"Textures/Bomberman/Menu/Play_On.png"); m_pPlayButton->GetTransform()->Scale(1); m_pQuitButton->GetComponent()->SetTexture(L"Textures/Bomberman/Menu/Exit_Off.png"); m_pQuitButton->GetTransform()->Scale(.8f); if (m_SelectedUI != 0) { //sfx FMOD::Sound* sound; auto fmodSystem = SoundManager::Get()->GetSystem(); fmodSystem->createSound("Resources/Sounds/menu_select.wav", FMOD_DEFAULT, 0, &sound); fmodSystem->playSound(sound, 0, false, 0); } m_SelectedUI = 0; } if (m_SceneContext.pInput->IsActionTriggered(2) || m_SceneContext.pInput->IsActionTriggered(3)) { //sfx FMOD::Sound* sound; auto fmodSystem = SoundManager::Get()->GetSystem(); fmodSystem->createSound("Resources/Sounds/menu_click.wav", FMOD_DEFAULT, 0, &sound); fmodSystem->playSound(sound, 0, false, 0); if (!m_SelectedUI) { SceneManager::Get()->AddGameScene(new GameplayScene()); SceneManager::Get()->LastScene(); } else PostQuitMessage(0); } } void MenuScene::Draw() { //Optional } void MenuScene::OnGUI() { }