C++

간단한 마리오 게임

mita2024 2024. 10. 25. 22:46

오랜만에 글을 씁니다. 한동안 다른 것을 공부하느라 작은 게임 프로젝트 만드는 것을 멈추었습니다.

cpp 문법도 다시 복습하고 있고, 그러면서 다시 멈추었던 프로젝트 만들어보기 공부도 시작했습니다.

 

이번에도 어쏘트락 게임 아카데미의 게임 프로젝트 영상을 보며 만든 프로그램입니다.

간단한 마리오 달리기 게임입니다. 

달리면서 코인을 먹는 간단한 구조입니다. 영상을 보시면 아시겠지만, 코인을 모두 제대로 먹지 못하고 있습니다..

정확한 좌표에 도달해야만 먹어지는 것 같습니다..

 

따로 추가한 기능이 있다면,  리셋기능과 게임중 나가기 기능, 최고점수 출력 정도가 있을 것 같습니다.

최고 점수 출력은 3스테이지를 모두 클리어 해야만 나올 수 있게 만들었으며 3스테이지를 클리어 했는지는 비트 연산을 통해 만들었습니다. bool 자료형의 배열로 해도 되지만, 깼는지 안깼는지를 체크하는 것이기 때문에, unsigned char 하나만 있어도 충분할 것 같다는 생각이 들었습니다.

맨 끝쪽을 1스테이지로 설정하여 3번째칸까지 모두 1이 채워지면 다 깼다는 것으로 조건문을 걸어 만들보았습니다.

 

리셋기능은 클리어한 기록, 점수, 목숨 등 모두 초기화 됩니다. 리셋을 하면 최고 점수 문장도 사라집니다.

 

게임 도중 나가는 기능은, 2가지 경우를 두고 만들었습니다.

아직 다 클리어 하지 못한 상태에서, 목숨이 남아 있는 경우와 목숨이 다 한 경우.

 

목숨이 남아있는 경우에 나간다면, 게임을 시작하기 전의 목숨과 점수로 돌아갑니다.

목숨이 다 떨어지면 우선 점수는 반으로 줄어들고, 계속할지 말지의 여부를 묻습니다. 

계속한다면 목숨만 다시 채워줍니다.

나가기를 선택하면, 점수는 반으로 줄어든 채 유지되고, 목숨은 초기화됩니다.

 

이번에 하면서 느낀점은, 작은 기능 하나 만드는 것에도 많은 코딩이 들어간다는 것이었습니다.

"이 기능이 들어간다면, 이 기능도 필요하겠네?" 라는 생각이 들면서, 작은 것을 하나 만드는 것에 시작하며 파생되는 것이 많아졌습니다. 고려할 것도 많고, 기능 하나를 추가할 때, 생겨날 에러 상황도 생각하게 되니, 점점 크기가 커져가는게 느껴졌습니다. 

다 끝나고 보니, 과연 내가 처음부터 이런 구조를 생각하며 직접 짤 수 있을까 라는 생각이 들었습니다.

지금은 따라하고, 이해하기에 급급한데, 내가 뭔가를 만들어야할 때, 강의내용처럼 클래스를 만들고 할수 있을지 걱정이 되었습니다.

현재는 코딩을 많이하고, 많은 삽질을 해보는 수 밖에 없겠지요...

성실히 배우며 다음 것도 올리겠습니다.

 

밑에는 영상과 코딩 파일입니다. 

 

 

동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.

 

 

 

헤더파일

CFileStream.h
0.00MB
Core.h
0.00MB
MapManager.h
0.00MB
ObjectManager.h
0.00MB
Player.h
0.00MB
Stage.h
0.00MB
value.h
0.00MB

 

cpp 파일

CFileStream.cpp
0.00MB
Core.cpp
0.00MB
MapManager.cpp
0.00MB
ObjectManager.cpp
0.00MB
Player.cpp
0.00MB
Running.cpp
0.00MB
Stage.cpp
0.00MB

 

stage 소스

Stage1.txt
0.00MB
Stage2.txt
0.00MB
Stage3.txt
0.00MB

 

 

미숙한 부분이나 오류가 있을 수 있습니다.

양해부탁드립니다.

'C++' 카테고리의 다른 글

간단한 미로탈출 게임  (2) 2024.07.15
TEXT RPG 완료  (0) 2024.07.02
TEXT RPG 중간단계  (0) 2024.07.01
간단한 책 대여 프로그램  (0) 2024.06.25
C++ 숫자빙고게임  (0) 2024.06.21