-
win32 게임 만들기(8) -ObjectWindows Programming/win32 게임엔진만들기 2022. 5. 1. 14:54
현 코드 상황)
Object에 Update() 코드는 키 입력에 따라 포지션을 이동 시키고 있고
후에 render()쪽에서는 이동된 포지션을 다시 그려 준다.
사실 Object라는 클래스는 앞으로 파생될 모든 다양한 종류의 오브젝트 클래스들에 부모격인 클래스이다.
나중에 이 업데이트를 그대로 사용 하면 죄다 다른 오브젝트도 키누르면 업데이트 똑같이 움직일 것이다.
ex) 플레이어를 조작하려는데 다른 물체들도 움직일 것
(테스트 코드로 배치해 놓은것이지 논리적 으로 맞지 않는다)
이부분을 수정 해보자!!
내가 원하는 건,
오브젝트를 상속 받은 다른 오브젝트들도 Scene의 Update 시점에 모든 오브젝트들이 업데이트를 호출 할 것인데
오브젝트마다 각기 다른 업데이트를 호출 할 것이다.
우리 오브젝트는 부모 타입인 Cobject*로 전체 관리를 할것이지만 실제 가리키고 있는 Object는 다른 타입 일수 있다.
Cobject의 Update()render()를 virtual => 가상 함수로 변경
CObject를 상속 받은 CPlayer객체 생성 Update 에서 CPlayer만에 기능을 수행할 로직을 구성
Scene_Start 에서 CPlayer 오브젝트와 그냥 Object 를 씬의 추가 해보자!
키 이벤트가 발생할 때마다 재정의된 CPlayer오브젝트는 이동하지만 Cobject는 가만히 있는다.
오브젝트마다 각기 다른 업데이트를 호출 할 것<<
Cobject는 실제 객체 생성 용도가 아닌 모든 오브젝트들의 상속 목적이다 = 순수 가상함수로 만들자(추상클래스)!
씬의 배치할 몬스터 오브젝트 객체 생성
m_vCenterPos : 몬스터가 이동할 기준점
m_fSpeed : 몬스터 이동 속도
m_fMaxDistance : 최대 이동거리
m_iDir : 방향 전환을 위한 값
씬의 몬스터 5마리 오브젝트 배치
실행결과
출처참고:
'Windows Programming > win32 게임엔진만들기' 카테고리의 다른 글
win32 게임 만들기(9) -Resource (1) 2022.05.14 win32 게임 만들기(7-2) -Scene Manager (0) 2022.04.25 win32 게임 만들기(7-1) -Scene Manager (0) 2022.04.23 win32 게임 만들기(6) - Key Manager (0) 2022.04.17 win32 게임 만들기(5)-Double Buffering (0) 2022.04.17