첫 c++ 개인 포트폴리오.

까말·2020년 9월 6일
0

소개

제목 : THE BINDING OF ISAAC
장르 : 로그라이크 
스토리 :  주인공은 어머니와 단 둘이 살고 있는 '아이작'. 성실한 기독교 광신자인 어머니는 어느 날 환청을 듣게 되고, 그걸 신의 뜻으로 여긴 어머니에 의해 아이작은 학대당하고 감금당하고 급기야 죽을 처지에 놓인다. 칼을 들고 아이작을 죽이려는 어머니를 피해 지하로 도망친 아이작은 지옥같은 던전에 발을 들이면서 게임이 시작된다.

인원 : 1명
담당파트 : 전체
제작기간 : 7일 (1주)
사용툴  : WinAPI, C++ Visual Studio
링크 : https://youtu.be/IxxVvSZiWzU

기술

1. 눈물 발사 매커니즘

1)사거리 계산

  • Getdistance 함수로 Bullet의 발사지점과 발사거리를 계산하여 거리 이상 나가게 되면 사라지도록 설계하였습니다.

2) 4방향 발사

  • 방향키로 상,하,좌,우 발사를 시키기 위해 4방향의 Enum값으로 상태를 나눠 주었습니다.
  • 각 Enum값마다 Bullet의 anlge값을 조정하여 각도를 변경해 주었습니다.

3) 눈물 흔들림

  • Enum의 각 cos, sin값에 눈물발사 속도+랜덤파워값을 더해주어 발사되는 동안 Bullet이
    상,하로 흔들리는 효과를 주었습니다.

4방향 발사 및 흔들림 코드

2. 각 맵의 문이 열리는 방식

1) 1, 4번째 문

  • 1번째 문은 시작 지점이라 문이 항상 OPEN 되도록 설계했습니다.
  • 4번째 문은 보스방이므로 다시 나갈 수 없도록 설계했습니다.

2) 2번째 문 OPEN 방법

  • 맵 안의 모든 적들을 처치하게 되면 문이 자동으로 열리게 됩니다.

2번째 맵 문 닫힘

2번째 맵 문 열림

3) 3번째 문 OPEN 방법

  • 맵 안의 모든 적들을 처치하게 되면 문이 자동으로 열리게 됩니다.
  • 아이템을 획득하게 되면 문이 자동으로 열리게 됩니다.

3번째 맵 문 닫힘

3번째 맵 문 열림

3. Pixel Collision

  • Player는 가시 Object와 충돌을 위해 Pixel Collision 방식을 사용했습니다.
  • Player몸과 머리는 각각의 Rect로 분리되어 있기 때문에 몸쪽을 중심으로
    Pixel Collision 처리 하였습니다.
  • Pixel Collision이 발생하면 좌측위에 체력이 하나씩 줄어들게 됩니다.

Pixel Collision 위치

Pixel Collision 진행중

Pixel Collision 코드

마무리

  • 아직 수정해야할 부분이 많다고 느낌..
  • 시간날때 틈틈히 수정해야겠다....
profile
취업준비중........!!

1개의 댓글

comment-user-thumbnail
2022년 10월 2일

멋지네요!

답글 달기