-
5 - (4). Shot 클래스화 하기C,C++로 만드는 간단한 프로젝트/Invaders(Galaga) 게임 만들기 2021. 3. 26. 21:24
아래의 내용을 이어서 진행하자.
designatedroom87.tistory.com/396
main 소스 파일에 정의된 아래의 내용을 common.h 헤더 파일로 옮기자.
옮기면 아래와 같이 common 헤더 파일의 내용이다.
< common.h >
Shot 클래스를 보자. Shot.h 헤더 파일에 정의한다.
총알이 생성될 때, CreateShot 멤버함수가 호출이 되어 누구의 총알인지 저장하는 변수가 type이다.
0이면 플레이어의 총알, 1이면 에너미의 총알이다.
이 Type 변수값을 이용해서 렌더 해야할 총알의 모양이 달라진다.
이 렌더할 총알의 모양을 모두 담고 있는 변수가 WhoShotUnit 배열이다.
Type 변수를 이용해서 이 배열에서 렌더해야할 모양을 Unit 변수에 저장하면 된다.
이차원 배열에 저장을 할 때, Unit 변수를 이용해서 저장을 하면 된다.
그래서 DrawShot 멤버함수에서 총알이 생성되었는지만 판단하고 누구의 총알인지를 묻지 않고 바로 렌더를 한다.
기존의 main 소스 파일에서는 플레이어의 총알인지 에너미의 총알인지를 판단해서 렌더를 했다.
여기서는 그 내용이 필요 없다.
에너미 클래스와 많이 비슷하므로, 별도의 설명은 필요 없을 것 같다.
main 소스 파일로 이동해서 변경한 부분을 보자.
아래와 같이 Shot 헤더파일을 추가하자.
그리고 아래와 같이 전역 변수로 Shot 객체 배열로 변경한다.
1. InitialObject 함수
이 함수에서 기존에 총알들을 초기화를 했는데, 이 부분이 필요없다.
그 이유는 Shot 클래스 내에 생성자에서 이 내용을 처리한다.
2. CreateShot 함수
비어 있는 총알 배열을 찾아, 발사한 객체와 그 위치를 담는다.
3. ShotAction 함수
각 총알 객체에서 이동을 처리 한다.
4. DrawShot 함수
총알 클래스에서 이차원 배뎔에 렌더를 한다.
5. CheckCrush 함수
영상
헤더 파일 & 소스 파일
'C,C++로 만드는 간단한 프로젝트 > Invaders(Galaga) 게임 만들기' 카테고리의 다른 글
5 - (6). Shot의 Manager 클래스 만들고 플레이어의 총알 생성하기 (0) 2021.04.02 5 - (5). 플레이어 클래스를 싱글톤 클래스화 하기 (0) 2021.03.27 5 - (3). 에너미들을 관리해주는 매니저 클래스 설계( 싱글톤 클래스 )하기 (0) 2021.03.26 5 - (2). 에너미를 클래스화 하기 (0) 2021.03.26 5 - (1). 플레이어를 클래스화 하기 (0) 2021.03.26