*** 공부 방법 ***
1. 코딩을 해야 하는 부분은 첫 부분에 변수나 함수, 메소드에 대한 선언이 코드블럭으로 표시되어 있다. //ex) MakeFunction(); 2. 코드블럭 하단에는 해당 선언에 대한 구현 로직이 작성되어 있다. 처
hyrule.tistory.com
class CNumber: public CWidget
{ CSharedPtr<class CAnimationSequence> m_NumberImage}
- 각 숫자에 출력할 이미지 저장
- 스프라이트 좌표를 통해 다른 부분을 출력하거나, 프레임 번호에 따라 다른 이미지를 출력해야 하므로
- 해당 정보가 들어있는 클래스인 CAnimationSequence를 사용한다.
{ int m_Number }
- 출력하고싶은 숫자 저장
< Set, Add >
{ std::vector<int> m_vecNumber }
- 각 자리의 숫자 하나에 이미지 하나를 출력해야 하므로 숫자를 한자리씩 잘라서 들고있을 변수
< Update() >
- 숫자를 각 단위 별로 분리해 준다.
- 10의 나머지를 구하고 -> 10으로 나누고 -> 다시 10의 나머지를 구하고 -> 다시 10으로 나누고 -> 반복
-- 위에서 나온 결과를 스택에 넣었다가 하나씩 뺴서 m_vecNumber에 넣으면, 분리된 값이 배열에 들어올 것이다.
ex)
123 % 10 = 3(스택에 삽입) -> 123 / 10 = 12
-> 12 % 10 = 2(스택에 삽입) -> 12 / 10 = 1
-> 1 % 10 = 1(스택에 삽입) -> 1 / 10 = 0
--> 스택에 이 값을 넣으면 3 2 1 -> 도로 벡터에 삽입하면 1 2 3
< Render() >
- 렌더링은 (일단은) 숫자의 자릿수만큼만 반복한다.
-- 나중에 숫자 시스템을 적극적으로 써야 한다면 자릿수 고정과 같은 기능도 추가해야 한다.
--- 이렇게 되면 아예 스택에서 하나씩 꺼내면서 처리를 해버리는것도 괜찮을 듯.
- 자릿수만큼 반복하면서, 해당 자리에 어떤 숫자를 출력해야하는지 확인해서,
숫자와 일치하는 숫자 이미지를 출력한다.
- 다음 자리로 넘어가면, 숫자의 사이즈만큼 x 좌표를 우측으로 이동시켜주어야 한다.
class CMonsterHPWindow
- 몬스터를 따라다니며 체력바를 표시해주는 위젯 윈도우에
남은 체력을 숫자로 표기해주는 시스템도 추가해 보자.
'WIN32API FrameWork > 한단계씩 직접 구현' 카테고리의 다른 글
멤버함수와 전역함수의 이름이 겹칠 때 (0) | 2022.06.09 |
---|---|
63. 위젯 컴포넌트 (0) | 2022.06.09 |
61. 폰트 (0) | 2022.06.08 |
60. 프로그레스 바 (0) | 2022.06.07 |
59. 마우스에 애니메이션 띄우기 (0) | 2022.06.07 |