1. 마우스 커서 변경
1-1. FPS의 크로스헤어 느낌의 마우스 커서로 변경
- 결국 마우스 기존 커서를 보이지 않게하고,
해당 위치에 내가 원하는 이미지가 떠다니면 됨.
- 따라서, 시작 화면에서는 기존 커서를 쓰고
전투가 시작되는 Stage1 Scene에서부터 크로스헤어의
마우스로 전환되게끔 하기 위해서
Intro Scene이 아닌 다음 씬의 init()에서 코드 작성.
// SceneStage1.cpp
...
bool UIWindowMain::init()
{
ShowCursor(FALSE);
UIWidgetImage* pMouseImage = createWidget<UIWidgetImage>(L"Mouse");
pMouseImage->setImageTexture(L"Mouse", L"spr_crosshair_0.bmp", TEXTURE_PATH);
pMouseImage->setImageTextureColorKey(255, 0, 255, 0);
return true;
}
...
- 마우스가 그려질 때는 아래와 같이 중점에서 그려지게끔 구현.
// UIWidgetMouse.cpp
...
void UIWidgetImage::render(HDC _hDC)
{
if (nullptr != m_pTexture)
{
Vec vPos = m_vPos + m_pOwnerWindow->getUIWindowPos();
if (m_pTexture->getObjName() == L"Mouse")
{
Vec vMousePos = Input::getInst()->getMouseCurPos();
Vec vScale = Vec(42.f, 42.f);
vPos.x = vMousePos.x + vScale.x / 2.f ;
vPos.y = vMousePos.y + vScale.y / 2.f ;
}
m_pTexture->render(_hDC, vPos, Vec(0.f, 0.f), m_vScale);
}
}
...
2. 리스폰 클래스 구현
2-1. 리스폰 클래스
- 플레이어는 죽었다가 살았을때, 몬스터는 리젠될 때
이 리스폰 클래스 개체가 있는 곳에서 스폰되게끔
구현 해 보고자 함.
- 가장 먼저 애니메이션에 쓰일 아틀라스 이미지를 만들자.
추출한 텍스쳐, png 이미지를 여기에서 마젠타가 낀 bmp로
변경 해 줌. 그리고 텍스쳐 패커로 아틀라스 이미지 생성.
- Object 클래스를 상속 받는 SpawnPoint 클래스 생성
위치는 Object 폴더로 지정.
2-2. 리스폰 위치 변경 가능
- 2번키를 누르면 해당 플레이어 자리에 리스폰 개체 생성
Y축 Sort를 통해서 탑뷰에서도 자연스럽게 보이게끔 함.
3. 애니메이션 예외처리 구현
3-1. 애니메이션이 원하는 때에 정확히 나오지 않는 문제 발생
ex. 피격 당했는데도 Hit 애니메이션이 안나옴. 죽었는데도 Die 애니메이션이 안나옴.
애니메이션 체인지를 총괄하는 코드가 필요할듯.
3-2. 문제점 파악
- 프로그램의 업데이트 사이클(init->update->postUpdate->render)
내에서 애니메이션 모션 체인지가 동기화 되지 않음.
즉, 한 사이클 내의 어느 순간에도 모션체인지가 일어날 수 있음.
- 엔진 구조를 바꿔보고자 했으나, 한계가 있음.
필자는 다른사람과의 약속과도 같은 이 "구조"를
깨트린다면 커뮤니케이션이 불가능하다고 생각함.
또한 기존 엔진 구조에 의존적인 코드가 많아서,
전체적인 리팩토링이 불가피함.
- 결론적으로 예외처리 형식을 채택함.
맞는 방식인지는 잘 모르겠음..!
어느정도 찾아보니, 예외처리가 엄청나게 나쁜 코드는 아닌듯함.
3-3. 플로우 차트 작성
- 애니메이션의 종류를 모두 적고, 플로우 차트를 그려 봄.
IDLE, WALK, SKILL, HIT, DIE, RESPAWN으로 나눠짐.
- 예외처리를 통해서 플로우 차트에 그린 경우의 수들을 구현함.
- DX11 2D에서는 동기화에 대한 갈망이 생길듯..
'WinAPI > [갠플] Relic Hunters Zero 모작' 카테고리의 다른 글
2021-09-27/Relic Hunters Zero 모작 일지 (0) | 2021.09.28 |
---|---|
2021-09-26/Relic Hunters Zero 모작 일지 (0) | 2021.09.26 |
2021-09-25/Relic Hunters Zero 모작 일지 (0) | 2021.09.26 |
2021-09-24/Relic Hunters Zero 모작 일지 (0) | 2021.09.25 |
2021-09-23/Relic Hunters Zero 모작 일지 (0) | 2021.09.24 |
댓글