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
|
|
|
|
|
2019-02-12 16:12:15 +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>
|
2019-02-12 16:12:15 +08:00
|
|
|
|
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>
|
2019-02-12 16:12:15 +08:00
|
|
|
|
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>
|
2019-02-12 16:12:15 +08:00
|
|
|
|
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>豸
|
2019-02-12 16:12:15 +08:00
|
|
|
|
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>
|
2019-02-12 16:12:15 +08:00
|
|
|
|
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>
|
2019-02-12 16:12:15 +08:00
|
|
|
|
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
|
|
|
|
}
|
2019-02-12 16:12:15 +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
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|