Untitled
Never
#include <allegro5/allegro_audio.h> #include <functional> #include <memory> #include <string> #include "AudioHelper.hpp" #include "GameEngine.hpp" #include "ImageButton.hpp" #include "Label.hpp" #include "PlayScene.hpp" #include "Point.hpp" #include "Resources.hpp" #include "Slider.hpp" #include "SettingScene.hpp" #include "StageSelectScene.hpp" void StageSelectScene::Initialize() { int w = Engine::GameEngine::GetInstance().GetScreenSize().x; int h = Engine::GameEngine::GetInstance().GetScreenSize().y; int halfW = w / 2; int halfH = h / 2; Engine::ImageButton* btn; // Stage 1 button btn = new Engine::ImageButton("stage-select/dirt.png", "stage-select/floor.png", halfW - 200, halfH / 2 - 50, 400, 100); btn->SetOnClickCallback(std::bind(&StageSelectScene::PlayOnClick, this, 1)); AddNewControlObject(btn); AddNewObject(new Engine::Label("Stage 1", "pirulen.ttf", 48, halfW, halfH / 2, 0, 0, 0, 255, 0.5, 0.5)); // Stage 2 button btn = new Engine::ImageButton("stage-select/dirt.png", "stage-select/floor.png", halfW - 200, halfH * 2 / 2 - 50, 400, 100); btn->SetOnClickCallback(std::bind(&StageSelectScene::PlayOnClick, this, 2)); AddNewControlObject(btn); AddNewObject(new Engine::Label("Stage 2", "pirulen.ttf", 48, halfW, halfH * 2 / 2, 0, 0, 0, 255, 0.5, 0.5)); // TODO 1 (2/7): Add the button which can change to setting scene. btn = new Engine::ImageButton("stage-select/dirt.png", "stage-select/floor.png", halfW - 200, halfH * 3 / 2 - 50, 400, 100); btn->SetOnClickCallback(std::bind(&StageSelectScene::SettingOnClick, this)); AddNewControlObject(btn); AddNewObject(new Engine::Label("Setting", "pirulen.ttf", 48, halfW, halfH * 3 / 2, 0, 0, 0, 255, 0.5, 0.5)); // TODO 1 (3/7): Move the slider to the setting scene. // Not safe if release resource while playing, however we only free while change scene, so it's fine. bgmInstance = AudioHelper::PlaySample("select.ogg", true, AudioHelper::BGMVolume); /* Slider *sliderBGM, *sliderSFX; sliderBGM = new Slider(40 + halfW - 95, halfH - 50 - 2, 190, 4); sliderBGM->SetOnValueChangedCallback(std::bind(&StageSelectScene::BGMSlideOnValueChanged, this, std::placeholders::_1)); AddNewControlObject(sliderBGM); AddNewObject(new Engine::Label("BGM: ", "pirulen.ttf", 28, 40 + halfW - 60 - 95, halfH - 50, 255, 255, 255, 255, 0.5, 0.5)); sliderSFX = new Slider(40 + halfW - 95, halfH + 50 - 2, 190, 4); sliderSFX->SetOnValueChangedCallback(std::bind(&StageSelectScene::SFXSlideOnValueChanged, this, std::placeholders::_1)); AddNewControlObject(sliderSFX); AddNewObject(new Engine::Label("SFX: ", "pirulen.ttf", 28, 40 + halfW - 60 - 95, halfH + 50, 255, 255, 255, 255, 0.5, 0.5)); sliderBGM->SetValue(AudioHelper::BGMVolume); sliderSFX->SetValue(AudioHelper::SFXVolume); */ } void StageSelectScene::Terminate() { AudioHelper::StopSample(bgmInstance); bgmInstance = std::shared_ptr<ALLEGRO_SAMPLE_INSTANCE>(); IScene::Terminate(); } void StageSelectScene::SettingOnClick (){ SettingScene* scene = dynamic_cast<SettingScene*>(Engine::GameEngine::GetInstance().GetScene("setting")); Engine::GameEngine::GetInstance().ChangeScene("setting"); } void StageSelectScene::PlayOnClick(int stage) { PlayScene* scene = dynamic_cast<PlayScene*>(Engine::GameEngine::GetInstance().GetScene("play")); scene->MapId = stage; Engine::GameEngine::GetInstance().ChangeScene("play"); } void StageSelectScene::BGMSlideOnValueChanged(float value) { AudioHelper::ChangeSampleVolume(bgmInstance, value); AudioHelper::BGMVolume = value; } void StageSelectScene::SFXSlideOnValueChanged(float value) { AudioHelper::SFXVolume = value; }
Raw Text
-
POV: Creampied by my Bumble Date
1 min ago
-
Sugar Defender Tom Green
25 min ago
-
ygbyhgytrgfytrgfrtfg
27 min ago
-
FIST4K. Curious nymph tries fisting during affair with BF in living room
33 min ago
-
Makers CBD Gummies Reviews
35 min ago
-
Life Boost CBD Gummies - FACTS, SCAM UPDATED PRICE 2024
35 min ago
-
https://www.facebook.com/CerebrozenReviews/
1 hour ago
-
Happy holiday, dear ladies!
1 hour ago
-
No Deposit Bonus
1 hour ago
-
Adult Telegram Channels
1 hour ago