d3dx9 - 21.10.15

김주현·2021년 10월 15일
0

d3dx9 3D

목록 보기
6/30

원형객체를 추가하는 부분까지 했음

1.Add_GameObject를 호출해서 객체를 추가해보자

오브젝트 매니저의 Add_GameObject 함수

우선 복제하기위한 원형을 Find_Prototype함수를 호출

원형의 클론함수를 호출(리턴값은 복제된 오브젝트)

이제 복제된 객체를 m_PLayer 컨테이너 추가해주자

레이어있는지를 검사해주는 Find_Layer함수를 구현하자

구현은 Find_Prototypes와 유사하다

m_pLayers를 인덱스로 접근하기때문에 찾고자하는 인덱스 iLevelIndex가 현재 최대인덱스인 m_iNumLevel보다 같거나 큰지 검사해야한다.

find_if함수에서 전에 만들어둔 함수객체를 활용하면된다.

CLayer에 객체를 추가해주는 Add_GameObject함수를 구현후

함수를 구현했으니 다시 Add_GameObject로 돌아와서

-내가 복제한 객체를 추가하고자 하는 레이어가 있는 경우
반한된 이터레이터(현재있는 레이어)에 추가

-내가 복제한 객체를 추가하고자 하는 레이어가 없는 경우
레이어를 생성해서 추가
(레이어의 Create함수와 NativeConstruct함수를 구현해주자)
1.pLayer에 레이어를 생성해서 넣어주고
2.Add_GameObject함수를 호출해 객체를 넣어주고
3.맵에 해당 레이어를 넣어주자(인덱스 연산을 사용하기때문에 iLevelIndex에 대한 예외처리가 필요하다!)

  1. 레벨로고에서 백그라운드를 사용할예정

레벨로고클래스에서 private 멤버함수 Ready_Layer_BackGround() 함수를 구현하고

NativeConstruct에서 호출해주자

Ready_Layer_BackGround() 함수

게임인스턴스를 가져오고 (참조하는것이기때문에 레퍼런스 증가감소를해주자)

구현한 Add_GameObject()를 호출해주자

  1. 게임오브젝트를 클론할때 데이터를 념거주고싶음

사본을 생성할때 사본의 데이터를 넘겨주고 싶다

클론의 인자로 void*를 받자! -> 원하는 포인터 변수를 모두 받을수있음

int형,float, 구조체포인터까지

CGameObject의 자식 함수까지 Clone함수가 Void *를 인자로 받도록 수정해주자

Clone에서 NativeConstruct를 호출해줘서 인자를넘겨줄것 -> NativeConstruct도 void *를 인자로 받아야 한다.

AddGameObject에서도 넘겨줄 데이터를 주기위해 함수를 수정해주자

레벨 로고에서 게임인스턴스를 통해 객체를 추가할때 iData인자 를 추가해보자

백그라운드의 NativeConstruct

m_iData = pArg를 해줄때 void 어디까지 주소를 사용해야할지 알지 못함 원하는 타입으로 캐스팅해줘야한다.

  1. 이제 객체의 업데이트를 호출해보자

MainApp의 GameInstance의 Tick은
레벨매니저 뿐만아니라 오브젝트 매니저 또한 Tick을 호출해줘야한다.

오브젝트 매니저에 Tick과 Late_Tick 두개를 만들어주자

Tick과 Late_Tick 사이에 수정해줘야할 정보가 많이 생기기때문에 두 함수를 구분

CLayer에도 Tick함수를 추가해주자

0개의 댓글

관련 채용 정보