스터디 진행을 위한 뱀 게임 제작기 1번입니다.


모든 소스는 아래의 링크에 있습니다.

http://gaucho1218-sample-project.googlecode.com/svn/trunk/SnakeGame/


이렇게 가벼운 게임을 만드실 때, 보통 어떤 것부터 만드시는지는 모르겠지만, 보통 내키는 것부터 하시겠죠.

개인적으로는 일단 밑바탕부터 만들고 시작합니다.


C++를 이용해서 만드는 편이 더 재미가 있기는 하지만, 이번에는 목적이 C에서 기초적으로 경험해야 할 부분을 모두 경험해두자는 것이 가장 큰 목표이기 때문에, 대부분 C로 진행됩니다.

조건과 관련된 부분은 아래의 글에 있습니다.


[Applications/SnakeGame] - Snake 게임 제작



main.cpp


메인 관련 소스에서는 GameBase.h에서 선언되어있는 함수를 이용하여, 루프를 돌면서, 상태를 업데이트하고, 콘솔 화면에 그리는 부분으로 틀을 잡았습니다.

조건에서는 1초에 한번씩만 업데이트를 하면 되기 때문에, 일단 그렇게 잡았습니다.

나중에 갑갑하면 변경해야죠.


GameBase.h



GameBase.c


아직 제대로 된 구현은 하나도 없어서 무언가 설명할게 없기는 하지만, 기본적으로 system("clear") 부분만 윈도우와는 상태가 다를 것 같네요. 화면 클리어 부분에 있어서 어떤 것이 가장 좋은가 이것 저것 알아보았는데요. system()을 불러서 처리하는 방법은 다른 것과 비교해 느리다고 했지만, 일단 제일 잘 먹히기도 하고, 어차피 성능을 요하는 게임을 만드는 것도 아니기 때문에 그냥 썼습니다.

아래의 검정 네모 부분은 그냥 단순한 저장용입니다.


또 하나, 윈도우와 다른 점은 gettickcount가 존재하지 않기 때문에, gettimeofday()를 사용하여 처리했다는 점입니다. 매 초마다 갱신이기 때문에, 밀리세컨드로 변환하는 부분이 필요없다고 생각하실 수 있겠지만, 그러면 정밀도가 떨어지게 될 가능성이 높습니다. 그리고 개인적으로 1초로 설정한건 좀 심했나? 하는 생각이 들어서, 나중에 시간을 변경할 가능성을 염두해두고, 밀리초를 단위로 만들어두었습니다.


시작은 가장 기초적인 틀을 잡는 것으로 시작하기 때문에, 특별한 부분은 없네요.

다음 커밋에서는 간단하게 지도를 받아서 이를 출력하는 부분까지는 만들어야겠습니다.

저작자 표시 비영리 변경 금지
신고

'Applications > SnakeGame' 카테고리의 다른 글

Snake Game(뱀 게임) - 4  (0) 2014.05.18
Snake Game(뱀 게임) 제작 규칙 수정  (0) 2014.03.27
Snake Game(뱀 게임) - 3  (0) 2014.03.27
Snake Game(뱀 게임) - 2  (0) 2014.03.14
Snake Game(뱀 게임) - 1  (0) 2014.03.11
Snake 게임 제작  (0) 2014.03.10

+ Recent posts