-
Notifications
You must be signed in to change notification settings - Fork 0
/
C_HUD_Pause_Menu.cpp
97 lines (90 loc) · 2.14 KB
/
C_HUD_Pause_Menu.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
//-----------------------------------------------------------
//PauseMenu
//-----------------------------------------------------------
//--------------------------------------
//システムインクルード
#include "C_HUD_Pause_Menu.h"
const char* FileNamePauseMenu[PAUSE_MAX] = {
"data/Texture/menu_00.png",
"data/Texture/menu_01.png",
"data/Texture/menu_02.png"
};
c_PauseMenu::c_PauseMenu()
{
m_nRecSelect = 0;
m_bPause = true;
}
c_PauseMenu::~c_PauseMenu()
{
}
void c_PauseMenu::InitMenu(c_Game_camera* camera)
{
g_pGameCamera = camera;
m_vPos = *camera->GetGameCameraPos();
m_pCursor = new c_Selection(CURSOR_FILE_NAME,CURSOR_SIZE);
m_pCursor->Init();
m_pCursor->SetRot(DEFAULT_ROT_MENU);
m_pPauseList = new c_SelectionList;
m_pPauseList->InitSelectionList();
m_pPauseList->CreatList(FileNamePauseMenu,PAUSE_MAX,m_vPos,CURSOR_SIZE);
m_pPauseList->SetListRot(DEFAULT_ROT_MENU);
}
void c_PauseMenu::UninitMenu(void)
{
m_pCursor->Uninit();
SAFE_DELETE(m_pCursor);
m_pPauseList->UninitSelectionList();
SAFE_DELETE(m_pPauseList);
g_pGameCamera = NULL;
}
bool c_PauseMenu::GetPause(void)
{
return m_bPause;
}
void c_PauseMenu::RefreashPos(void)
{
m_vPos = *g_pGameCamera->GetGameCameraPos();
m_vPos += RANGE_FROM_CAMERA;
m_pPauseList->SetListPos(m_vPos);
}
void c_PauseMenu::UpdateMenu(void)
{
if(GetKeyboardTrigger(KEY_PAUSE))
{
m_bPause = !m_bPause;
RefreashPos();
}
RefreashPos();
if(m_bPause)
{
if(GetKeyboardTrigger(KEY_ENTER))
{
}
else if(GetKeyboardTrigger(KEY_DIR_UP))
{
m_nRecSelect = ( PAUSE_MAX + m_nRecSelect - 1) % PAUSE_MAX;
}
else if(GetKeyboardTrigger(KEY_DIR_DOWN))
{
m_nRecSelect = (m_nRecSelect + 1) % PAUSE_MAX;
}
{
//ここでカーソルのエフェクト処理を行う
//m_pCursor->SetAlpha
//m_pCursor->SetSize
//m_pCursor->m_vRot
//などいずれも絶対値となる
}
m_pCursor->SetPos(m_pPauseList->m_pSelection[m_nRecSelect]->GetPos());
m_pCursor->Update();
m_pPauseList->UpdateList();
}
}
void c_PauseMenu::DrawMenu(void)
{
if(m_bPause)
{
m_pPauseList->DrawList();
m_pCursor->DrawPrimitive();
}
}