UI Manager

2023. 1. 4. 20:14개인공부/Win32API

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
void CUIMgr::update()
{
    CScene* pCurScene = CSceneMgr::GetInst()->GetCurScene();
    const vector<CObject*>& vecUI = pCurScene->GetGroupObject(GROUP_TYPE::UI);
 
    bool bLbtnTap = KEY_TAP(KEY::LBTN);
    bool bLbtmAway = KEY_AWAY(KEY::LBTN);
 
 
    for (size_t i = 0; i < vecUI.size(); ++i)
    {
        CUI* pUI = (CUI*)vecUI[i];
        
        if (pUI->IsMouseOn())
        {
            pUI->MouseOn();
            
            if (bLbtnTap)
            {
                pUI->MouseLbtnDown();
                pUI->m_bLbtnDown = true;
            }
            else if (bLbtmAway)
            {
                pUI->MouseLbtnUp();
 
                if (pUI->m_bLbtnDown)
                {
                    pUI->MouseLbtnClicked();
                }
 
                // 왼쪽버튼 떼면 ,눌렸던 체크를 다시 해제한다.
                pUI->m_bLbtnDown = false;
            }
        }
        else
        {
            // 왼쪽버튼 뗴면, 눌렸던 체크를 다시 해제한다.
            if (bLbtmAway)
            {
                pUI->m_bLbtnDown = false;
            }
        }
    }
}
 
cs

ui 매니저를 추가해서 ui 의 작동방식에 대해서 배웠다 ui지역내에서 마우스 버튼 다운과 업을 입력받으면 클릭함수를 실행 하도록 조건을 만들었다. ui의 업데이트는 Scene 의 update 이후이므로 조건들을 확인 가능하다. 왼쪽이 맵타일이고 오른쪽이 ui이다. 중단점을 통해서 디버깅도 완료했다.

'개인공부 > Win32API' 카테고리의 다른 글

UI 기능  (0) 2023.01.06
자식 UI 추가  (0) 2023.01.05
Camera  (0) 2023.01.03
Animation- Component  (0) 2023.01.02
충돌 디버깅  (0) 2023.01.01