2019-02-03 21:45:56 +08:00
|
|
|
|
// Copyright (C) 2019 Nomango
|
|
|
|
|
|
|
2019-03-20 23:24:57 +08:00
|
|
|
|
#include "Demo1.h"
|
|
|
|
|
|
#include "Demo2.h"
|
|
|
|
|
|
#include "Demo3.h"
|
|
|
|
|
|
#include "Demo4.h"
|
2019-03-31 01:37:06 +08:00
|
|
|
|
#include "Demo5.h"
|
2019-02-03 21:45:56 +08:00
|
|
|
|
|
|
|
|
|
|
namespace
|
|
|
|
|
|
{
|
|
|
|
|
|
struct Demo
|
|
|
|
|
|
{
|
|
|
|
|
|
String title;
|
|
|
|
|
|
ScenePtr(*Create)();
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
Demo s_Demos[] = {
|
|
|
|
|
|
{ L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>", Demo1::Create },
|
|
|
|
|
|
{ L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>", Demo2::Create },
|
|
|
|
|
|
{ L"<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>", Demo3::Create },
|
2019-03-18 15:00:58 +08:00
|
|
|
|
{ L"֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>", Demo4::Create },
|
2019-03-31 01:37:06 +08:00
|
|
|
|
{ L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>", Demo5::Create },
|
2019-02-03 21:45:56 +08:00
|
|
|
|
};
|
2019-03-31 01:37:06 +08:00
|
|
|
|
int s_CurrIndex = -1;
|
2019-02-03 21:45:56 +08:00
|
|
|
|
int s_DemoNum = sizeof(s_Demos) / sizeof(Demo);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
class DemoApp
|
|
|
|
|
|
: public Application
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
DemoApp()
|
|
|
|
|
|
{
|
2019-03-11 17:24:11 +08:00
|
|
|
|
// ʹ<><CAB9> Audio <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
Use(&Audio::Instance());
|
2019-02-03 21:45:56 +08:00
|
|
|
|
|
2019-03-31 01:37:06 +08:00
|
|
|
|
// ʹ<><CAB9> HttpClient <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
Use(&HttpClient::Instance());
|
|
|
|
|
|
|
2019-03-11 17:24:11 +08:00
|
|
|
|
Options options(L"Easy2Dʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", WINDOW_WIDTH, WINDOW_HEIGHT);
|
2019-02-03 21:45:56 +08:00
|
|
|
|
Init(options);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void OnStart() override
|
|
|
|
|
|
{
|
2019-03-31 01:37:06 +08:00
|
|
|
|
ChangeDemoScene(0);
|
2019-02-03 21:45:56 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2019-03-31 01:37:06 +08:00
|
|
|
|
void ChangeDemoScene(int index)
|
2019-02-03 21:45:56 +08:00
|
|
|
|
{
|
2019-03-31 01:37:06 +08:00
|
|
|
|
if (s_CurrIndex != index)
|
|
|
|
|
|
{
|
|
|
|
|
|
s_CurrIndex = index;
|
2019-02-03 21:45:56 +08:00
|
|
|
|
|
2019-03-31 01:37:06 +08:00
|
|
|
|
String title = s_Demos[index].title;
|
|
|
|
|
|
GetWindow()->SetTitle(title);
|
2019-02-03 21:45:56 +08:00
|
|
|
|
|
2019-03-31 01:37:06 +08:00
|
|
|
|
ScenePtr scene = s_Demos[index].Create();
|
|
|
|
|
|
EnterScene(scene);
|
2019-02-03 21:45:56 +08:00
|
|
|
|
|
2019-03-31 01:37:06 +08:00
|
|
|
|
// <20><><EFBFBD>Ӱ<EFBFBD><D3B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2019-04-08 14:15:27 +08:00
|
|
|
|
scene->AddListener(Event::KeyUp, MakeClosure(this, &DemoApp::KeyPressed));
|
2019-03-31 01:37:06 +08:00
|
|
|
|
|
|
|
|
|
|
// <20><>ʾ<EFBFBD><CABE>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
|
|
|
|
|
|
String intro_str = format_wstring(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1~%d <20><><EFBFBD>л<EFBFBD>ʾ<EFBFBD><CABE>\n", s_DemoNum);
|
|
|
|
|
|
TextPtr intro = new Text(intro_str + title);
|
|
|
|
|
|
intro->SetFontSize(16.f);
|
|
|
|
|
|
intro->SetPosition(10, 10);
|
|
|
|
|
|
scene->AddChild(intro);
|
|
|
|
|
|
}
|
2019-02-03 21:45:56 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void KeyPressed(Event const& evt)
|
|
|
|
|
|
{
|
2019-02-12 16:12:15 +08:00
|
|
|
|
E2D_ASSERT(evt.type == Event::KeyUp);
|
2019-02-03 21:45:56 +08:00
|
|
|
|
|
|
|
|
|
|
if (evt.key.code > KeyCode::Num0 &&
|
|
|
|
|
|
evt.key.code <= (KeyCode::Num0 + s_DemoNum))
|
|
|
|
|
|
{
|
2019-03-31 01:37:06 +08:00
|
|
|
|
int index = evt.key.code - KeyCode::Num1;
|
|
|
|
|
|
ChangeDemoScene(index);
|
2019-02-03 21:45:56 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2019-03-14 17:55:06 +08:00
|
|
|
|
int WINAPI wWinMain(HINSTANCE, HINSTANCE, PWSTR, int)
|
2019-02-03 21:45:56 +08:00
|
|
|
|
{
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
DemoApp app;
|
|
|
|
|
|
app.Run();
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (std::exception& e)
|
|
|
|
|
|
{
|
2019-03-10 13:44:02 +08:00
|
|
|
|
::MessageBoxA(nullptr, e.what(), "An exception has occurred!", MB_ICONERROR | MB_OK);
|
2019-02-03 21:45:56 +08:00
|
|
|
|
}
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
}
|