프로젝트/[인프런] 게임 프로그래머 입문 올인원

[게임 프로그래머 입문 올인원] 2D 포폴 준비 : 충돌 레이어(112강)

순정법사 2024.09.09

A. 2D 포폴 준비

5. 충돌 레이어

a. 충돌객체 생성하기

저번에 충돌처리했던 객체를 하나 더 만들어서 바닥으로 만들어주자

 

요렇게

 

b. 나는 누구인가 / 누구랑 충돌할 것인가

이렇게 상태들을 3가지 만들어주기

 

충돌타입의 enum 생성해주고

 

나의 충돌레이어, 상대충돌레이어 정보 등 작성해준다 (여기서 비트 플래그를 사용함)

 

c. 비트플래그

🌟 비트플래그 : 최대한 정보를 압축하며 어떠한 정보를 기입하는데 사용

(공업용 계산기에서 1이면 충돌 0이면 아닌것이랑 동일)

 

👉 즉, 비트단위를 쪼개서 정수처럼 활용하는 것임

빠르고, 메모리 이점도 있고 굿굿!

 

논리 회로 게이트에 대해서 잠시 공부,,

 

d. 충돌 레이어 함수 작성하기

다시 돌아와서 어떤 레이어와 충돌할건지 알려주는 함수 작성해주고

 

이 친구랑 충돌할게요~ 지울게요~ 코드

 

충돌할때 예외처리도 해주기 (충돌 의지가 있는지부터 물어보자)

 

범용적으로 사용할거니까 충돌의지가 있는지 물어보기

 

+ 자식코드들도 꼭 넣어주자

 

 

이렇게 나의 레이어, 리셋 후 충돌하고싶은 객체를 작성해주면 끝!

 

여기까지 하면 충돌처리가 잘 됨!

 

충돌하는 객체들은 코드가 이렇다

 

e. 슈퍼마리오를 모작한다면?

중력과 점프를 구현하면 됨

 

작성해주고

 

위아래로 움직이는 코드 끄고 중력과 점프 구현하면 됨

 

여기서 onGround, jumping 같은 불리언 멤버변수를 둬서

중력상태, 점프상태를 바꿔주고 할 수 있지만

💥 변수로 상태 변화 코드를 작성하게 되면 꼬일일이 많음..

 

👉 따라서 상태 기반으로 코드를 작성해야 함! (다음시간에...)

 

 

 


출처 : https://www.inflearn.com/course/%EA%B2%8C%EC%9E%84-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8-%EC%9E%85%EB%AC%B8-%EC%98%AC%EC%9D%B8%EC%9B%90-rookiss#curriculum

 

[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버 -

어디부터 시작할지 막막한 게임 프로그래밍 입문자를 위한 All-In-One 커리큘럼입니다. C++, 자료구조/알고리즘, STL, 게임 수학, Windows API, 게임 서버 입문으로 이어지는 알찬 커리큘럼으로 게임 프

www.inflearn.com