-플레이어 총알발사-

이제 플레이어에서 발사 키 누르면 총알 생성해서 움직이게 하는게 목표인데, 생각을 해보면, 총알이란게 어디서 나와서 출발을 하는가?이다.

총알은 일단 플레이어한테서 나와야하니까, 얼핏 보면 플레이어에서 생성을 하나? 싶은데, 실상은 MainGame클래스에서 Update()를 하고, Render()를 한다고 보면된다.

먼저 총알 생성을 위해, 총알이라는 Bullet클래스 부터 만들자.

이 Bullet클래스도, CObj의 상속을 받는 자식 객체로 하자. Bullet이란 것도 오브젝트 중 하나잖아?

그래서, 그 총알도 그 오브젝트 구조체 정보를 같이 써서 가로,세로 길이 설정해주고 한다.

[1]. MainGame클래스에서 실질적인 생성을 해야하기 때문에, 이 Bullet을 우리는 STL의 리스트를 써서 관리해보자.

MainGame헤더에다가, List<CObj*> m_BulletlList라고 선언하고, cpp에다가 각각 update를 auto범위기반 for문을 사용해서 update, render를 처리한다.

[2]. MainGame클래스에서 생성한 bullet을 이제, 플레이어가 쏘고 해야하니까, player에다가 set_bullet함수를 bullet의 주소를 가져오자 왜?bullet은 리스트 포인터니까,

[3]. 그 플레이어에 쓴 Set_Bullet함수를, 이제 mainGame클래스에서 player 할당하면서, initialize하니까, 서순에 맞게 플레이어 부터 해놓고 나서, 그 뒤에 mainGame클래스에서 쓰던 bulletlist를, player클래스에서 set함수로 가져와서, 이제 플레이어에서의 m_pBullet은, 메인게임에서의 bulletlist가 되버린거임.

[4]. 이제 그 플레이어의 m_pBullet이 결국 리스트니까, 거기다가 push_back으로 반환타입이 오브젝트인, bullet생성함수 를 넣어줌.

Untitled

Untitled