Magic_Game/samples/Samples/Demo3.h

85 lines
1.8 KiB
C
Raw Normal View History

2019-02-03 21:45:56 +08:00
// Copyright (C) 2019 Nomango
#pragma once
#include "common.h"
class Demo3
: public Scene
{
2019-04-11 16:00:57 +08:00
SoundPtr bgmusic; // <20><><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD>
2019-02-03 21:45:56 +08:00
TextPtr volume_text; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TextPtr state_text; // <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
public:
static ScenePtr Create()
{
return new Demo3;
}
Demo3()
{
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2019-04-11 16:00:57 +08:00
bgmusic = new Sound;
if (!bgmusic->Load(L"res/splash.mp3"))
2019-02-03 21:45:56 +08:00
{
2019-04-11 16:00:57 +08:00
bgmusic = nullptr;
2019-02-03 21:45:56 +08:00
TextPtr err = new Text(L"<EFBFBD><EFBFBD>Ƶ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>");
2019-02-03 21:45:56 +08:00
this->AddChild(err);
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD><D6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-1 <20><>ʾѭ<CABE><D1AD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>
2019-04-11 16:00:57 +08:00
bgmusic->Play(-1);
2019-02-03 21:45:56 +08:00
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TextPtr intro_text = new Text(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n<EFBFBD><EFBFBD><EFBFBD>ո<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
2019-03-10 13:44:02 +08:00
intro_text->SetPosition(WINDOW_WIDTH / 2 - 80, WINDOW_HEIGHT / 2 - 50);
2019-02-03 21:45:56 +08:00
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
volume_text = new Text(L"<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
2019-03-10 13:44:02 +08:00
volume_text->SetPosition(WINDOW_WIDTH / 2 - 80, WINDOW_HEIGHT / 2 + 30);
2019-02-03 21:45:56 +08:00
// <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
state_text = new Text(L"<EFBFBD><EFBFBD>ǰ״̬<EFBFBD><EFBFBD>");
2019-03-10 13:44:02 +08:00
state_text->SetPosition(WINDOW_WIDTH / 2 - 80, WINDOW_HEIGHT / 2 + 60);
2019-02-03 21:45:56 +08:00
// <20><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD>
this->AddChild(intro_text);
this->AddChild(volume_text);
this->AddChild(state_text);
}
void OnUpdate(Duration dt) override
{
2019-04-11 16:00:57 +08:00
if (bgmusic == nullptr)
2019-02-03 21:45:56 +08:00
return;
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD>״̬
2019-04-11 16:00:57 +08:00
float volume = bgmusic->GetVolume();
bool playing = bgmusic->IsPlaying();
2019-02-03 21:45:56 +08:00
// <20>޸<EFBFBD><DEB8>ı<EFBFBD>
volume_text->SetText(L"<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" + std::to_wstring(volume));
state_text->SetText(playing ? L"<EFBFBD><EFBFBD>ǰ״̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>" : L"<EFBFBD><EFBFBD>ǰ״̬<EFBFBD><EFBFBD>ֹͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>
auto& input = Input::Instance();
2019-02-03 21:45:56 +08:00
// <20><><EFBFBD>ո<EFBFBD><D5B8><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (input.WasPressed(KeyCode::Space))
2019-02-03 21:45:56 +08:00
{
2019-04-11 16:00:57 +08:00
bgmusic->IsPlaying() ? bgmusic->Pause() : bgmusic->Resume();
2019-02-03 21:45:56 +08:00
}
// <20><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (input.WasPressed(KeyCode::Up))
2019-02-03 21:45:56 +08:00
{
2019-04-11 16:00:57 +08:00
bgmusic->SetVolume(volume + 0.1f);
2019-02-03 21:45:56 +08:00
}
else if (input.WasPressed(KeyCode::Down))
2019-02-03 21:45:56 +08:00
{
2019-04-11 16:00:57 +08:00
bgmusic->SetVolume(volume - 0.1f);
2019-02-03 21:45:56 +08:00
}
}
};