Files
dl/project/dl_test/ui_game.cpp
T
2026-09-16 14:07:40 +08:00

90 lines
2.0 KiB
C++

#include "ui_game.h"
#include "game_sudo.h"
#include "game_snake.h"
#include "game_match.h"
UIGame::UIGame()
{
UI::Panel* panel = CreatePanel("root");
panel->SetPosScale({ 0.0f, 0.0f });
panel->SetPosPixel(POS_CONTENT);
UI::Panel* panel_menu = g_ui->CreatePanel();
panel_menu->SetLocator(createLocatorX(200));
g_ui->SetPanelParent(panel_menu, panel);
{
UI::ListBox* lst = g_ui->CreateListBoxDefault(true);
lst->SetItemCallback([](UI::Panel* item, Value v) {
if (v)
item->ExSetString(v.ToString());
else
item->ExSetString({});
});
_allGame.push_back("数独");
_allGame.push_back("贪吃蛇");
_allGame.push_back("消消乐");
lst->SetItemData(_allGame);
panel_menu->Add(lst);
_edt = lst;
}
{
UI::Text* txt = g_ui->CreateTextDefault();
txt->SetElementData(Align::LT);
txt->GetText()->SetMaxW(400);
txt->SetString("请选择一个示例");
panel_menu->Add(txt);
_txtInfo = txt;
}
}
void UIGame::Update()
{
if (_edt->IsSelectChange())
{
Value name = _edt->GetSelect();
if (name)
{
if (name.ToString() == "数独")
{
_txtInfo->SetString("数独游戏,双击进入。\n操作说明:按1-9选择数字,按~取消选择");
}
else if (name.ToString() == "贪吃蛇")
{
_txtInfo->SetString("贪吃蛇,双击进入。\n由ai编写");
}
else if (name.ToString() == "消消乐")
{
_txtInfo->SetString("消消乐游戏,双击进入。\n操作说明:点击相邻方块进行交换,形成3个或以上连续匹配");
}
else
_txtInfo->SetString("");
}
}
Value enter = _edt->GetSelectClickDouble();
if (enter)
{
if (enter.ToString() == "数独")
{
g_scene->Del("child");
g_scene->Del("main");
g_scene->Add("game", new GameSudo);
}
else if(enter.ToString() == "贪吃蛇")
{
g_scene->Del("child");
g_scene->Del("main");
g_scene->Add("game", new GameSnake);
}
else if(enter.ToString() == "消消乐")
{
g_scene->Del("child");
g_scene->Del("main");
g_scene->Add("game", new GameMatch);
}
}
}