ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • win32 게임 만들기(8) -Object
    Windows 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마리 오브젝트 배치


    실행결과

    출처참고:

    https://youtu.be/nUJgEgTB4F4

    댓글

Designed by Tistory.