본문 바로가기

게임엔진

cocos2d-x 포코팡 류 게임만들기!! - 14 - 시간 제한 드디어! 제가 계획한 내용의 마지막입니다. 초기화면에서 게임화면으로 전환되는 부분까지 지난 시간에 만들어봤고요. 이번에는 시간제한 부분을 추가해서 정해진 시간이 완료되면 게임을 중단하고 다시 초기화면으로 돌아가도록 해보겠습니다. - 14 - 시간 제한 1. 화면 구성기대하는 화면 구성은 다음과 같은데요. 처음 어플을 실행하면, '초기화면'이 나오고, 터치를 하면, '게임화면', 여기서 '60초'가 지나면, 다시 '초기화면', 터치를 하면, '게임화면'...'초기화면','게임화면',... 계속 반복입니다.게임화면 하단에 노란색 타임바를 추가하여 60초 동안 오른쪽에서 왼쪽으로 줄어들도록 합니다. 다 줄어들면 다음 화면인 초기화면으로 넘어가게 됩니다. 그럼 구현을 해보도록 하겠습니다. 2. CCProgres.. 더보기
cocos2d-x 포코팡 류 게임만들기!! - 13 - 화면 전환 지금까지는 게임화면을 만드는 것에만 집중했었는데요. 이번에는 화면을 전환하는 방법에 대해 확인해보겠습니다. 일반적으로 'Scene'이라고 부르는데요. 게임을 진행하던 HelloWorldScene과는 달리, 초기화면을 구성하는 Scene을 만들어보겠습니다. 이 두 개의 Scene은 완전히 대등한 관계라고 할 수 있는데요. 마치 한 장면 장면이 연결되어 한 편의 드라마나 영화가 되는 것처럼, 게임 또한 여러 장면을 구성하고 장면들을 연결하여 하나의 게임을 완성할 수 있습니다. - 13 - 화면 전환 1. 초기화면 구성게임을 구성하는 장면은 아주 다양합니다. 실제 게임을 진행하는 장면도 있고, 게임을 처음 켰을 때 나오는 회사마크도 장면이라고 할 수 있고요. 초기 메뉴도 장면, 게임이 종료되고 점수가 나오는 .. 더보기
cocos2d-x 포코팡 류 게임만들기!! - 12 - 점수 계산 중간에 버그도 하나 잡았고.. 물론 엄청 많겠지만요 ^^; 계속 진행해보겠습니다! 남은 내용은 다음과 같이 진행할 예정입니다.- 점수 계산 : 코인을 없앨 때 마다 점수 추가 - 화면 전환 : 초기화면이 나오고 화면을 터치하면 게임시작 - 시간 제한 : 60초 시간 제한을 두고, 60초가 지나면 초기화면으로 돌아감그럼 점수계산부터 시작하겠습니다. - 12 - 점수 계산 1. 점수 이미지 & 폰트게임에 숫자나 문자를 표시할 때는 일반 폰트보다는 이미지를 사용한 비트맵 폰트를 주로 사용합니다. 글자에 맞는 이미지를 만들고, 해당 글자에 이미지를 맵핑한 형태로 사용하는데요. 무료 툴인 BMFont, Mac 전용 Glyphs 등 여러 비트맵 폰트 에디터가 있는 것으로 알고 있습니다. 비트맵 폰트 제작 자체도 게.. 더보기
[버그] 첫 번째 코인이 선택되지 않는 문제 - 해결!! 대충 대충 테스트하다 보니까 버그가 있는 것을 확인하질 못했습니다. 마침 또 버그를 찾아주신 분도 있고 해서 수정한 부분을 올려드립니다.처음 터치 시, 첫 번째 코인(index '0' 코인)을 눌러도 선택되지 않는 문제가 발생하는데요. 비교값을 잘못 설정해서 발생하는 문제였습니다. '0보다 크다'라고 작성한 부분을 '0보다 같거나 크다'로 바꾸면 잘 동작합니다!/Classes/HelloWorldScene.cpp void HelloWorld::ccTouchesBegan(CCSet* touches, CCEvent* event) { CCTouch* touch = (CCTouch*)( touches->anyObject() ); CCPoint location = touch->getLocation(); _lastC.. 더보기
cocos2d-x 포코팡 류 게임만들기!! - 11 - 새로운 코인 생성 이제 새로운 코인만 생성하면 대충 완성된 형태의 게임이 완성될 것 같습니다. 남은 과정은 점수, Scene 전환, 시간제한 정도가 있겠네요. 점점 마지막을 향해 가고 있습니다!! - 11 - 새로운 코인 생성 1. 사라진 코인의 수?새로운 코인을 생성할 차례입니다. 이미 남아있는 코인들은 바닥 쪽으로 이동한 상태이기 때문에, 각 라인 별로 비어있는 위치에 코인을 생성해주면 될 것 같습니다. 다음과 같이 해보려고 합니다. - 랜덤하게 코인 종류를 선택 - 코인 이미지를 종류에 맞게 변경 - 코인을 setVisible(True)로 화면에 보이도록 설정 - 새로운 코인의 액션 추가이렇게 하면, 마치 새로운 코인이 위에서 아래로 떨어지는 것처럼 보이게 할 수 있을 것 같습니다. 여기서 새로운 코인이 떨어지는 위.. 더보기
cocos2d-x 포코팡 류 게임만들기!! - 10 - 코인 애니메이션 이번에는 코인이 떨어지는 동작을 만들어보겠습니다. 지난 시간에 코인의 이전 위치와 새 위치를 확인해서 변경하는 내용까지 살펴보았는데요. 단순히 위치를 변경하는 것이 아니라, 기존 위치에서 새 위치로 움직이는 액션을 추가하면 코인이 아래로 떨어지는 형태의 애니메이션을 구현할 수 있습니다. - 10 - 코인 애니메이션1. MOVE state기존의 코인 state는 LIVE, DEAD, SELECT로 구분되었습니다. 코인이 '움직이는 동작' 역시 하나의 상태이므로 움직이는 중간에 다른 동작과 혼선이 없도록 MOVE state를 추가하도록 하겠습니다./Classes/GameCoin.h class GameCoin : public CCSprite { private: public: enum gameState { LI.. 더보기
cocos2d-x 포코팡 류 게임만들기!! - 9 - 사라질 코인들은 모두 위로~! 막 혼자 만들때는 코드가 지저분해도 뭐 나만보니까~ 상관하지 않았었는데요. 설명을 위해 다시 작업하려니까 시간이 많이 걸리네요. 처음부터 잘 생각해서 만들었어야 했는데요. 머리가 나쁘니 몸이 고생합니다 --;이전 아이디어에 맞게 구현할 차례가 되었습니다. 터치스크린에서 손이 떨어질 때, 사라질 코인들은 위로 보내주고 남은 코인은 순서에 맞게 빈 칸을 채워주도록 합시다. - 9 - 사라질 코인들은 모두 위로~!1. 아이디어 보충지난 번에 생각한 아이디어를 실제 구현에 맞게 조금 구체화시킬 필요가 있을 것 같습니다. 별거는 없지만, 조금 다른 예제를 확인해보겠습니다.맨 밑의 [5]번 부터 시작해서, 각 순서마다 선택되어 사라질 코인인지 확인을 하는 과정입니다. 이전에 빠뜨린 내용이 "남아있는 코인 아래에 사.. 더보기
cocos2d-x 포코팡 류 게임만들기!! - 8 - 없어진 coin 채우기 : idea 한 번에 너무 많은 내용을 담으려고 해서, 글이 길어져서 읽기 힘들고, 게시하는 간격도 점점 늘어나는 것 같습니다. 좀 더 세분화해서 자주 올리도록 하겠습니다. 지난 시간까지 코인을 없앴으니, 이제는 없어진 코인을 채워보도록 하겠습니다. 크게 두 가지로 나눠서 생각해보려고 합니다.1. 어떻게 남은 코인을 바닥쪽으로 배치할 것인가2. 남은 코인과 새로 생성되는 코인이 아래로 내려가는 동작시작합니다. - 8 - 없어진 coin 채우기 : idea1. 어떻게 남은 코인을 바닥쪽으로 배치할 것인가 당연히 더 좋은 방법이 많이 있겠지만, 나름 생각해본 제 아이디어를 설명하고, 그대로 구현해보려고 합니다.우선, [ 6 * 7 ] 크기로 배치되는 게임판에서 세로 줄 끼리는 사실 지금 단계에서는 서로 관련이 없다고 볼.. 더보기
cocos2d-x 포코팡 류 게임만들기!! - 7 - 게임을 좀 더 제대로! (2) 우연하게 네이버 블로그에서 제 글의 게임이미지로 포코팡류 게임을 만들고 계시는 분을 봤습니다. 신기하기도 하고, 뿌듯하기도 했지만, 열심히하고 계시는 그 분에 비해 저는 너무 지지부진한 것 같아서 부끄러운 마음도 들었습니다. 열심히 해야겠습니다. 지난 시간에 이어서, 좀 더 게임답게 동작하도록 만들어보겠습니다. 같은 종류의 코인이 연속되어 선택되도록 만들어 놓은 상태기 때문에, 이번에는 화면에서 손가락을 떼는 순간 선택된 코인들을 제거하도록 해보겠습니다. 처음 선택된 코인 기준으로 동일한 종류인 경우 카운트값을 증가시키고, 이 값이 3개 이상이면 제거하면 되기 때문에 그렇게 어려운 작업은 아닐 것 같습니다. - 7 - 게임을 좀 더 제대로! (2) 1. 선택된 코인의 개수를 저장우선 헤더파일에 선택과 삭.. 더보기
[중간점검] cocos2d-x 포코팡 류 게임만들기!! 최종 게임영상 및 계획 안녕하세요.개인적으로 큰 일을 치르느라 시간이 많이 없었습니다. 연초로 계획했던 일이 계속 미뤄지다가 벌써 반 년이나 지났네요. 꼭 다음 달까지는 마무리하도록 하려고 합니다.목표한 결과물을 완성한 지는 몇 달 지났지만, 정리가 계속 늦어지고 있습니다. 이번에는 제 기준에서 완성된 게임영상을 보여드리고, 앞으로 진행하려고 하는 내용을 다시 계획해보도록 하겠습니다.[중간점검]다음의 영상이 최종 게임영상입니다. 혼자 촬영하고 게임까지 진행하느라 조작이 자연스럽지 못한 점 양해바랍니다.게임은 초기화면이 나오고, 화면을 터치하면 게임을 진행합니다. 1분 동안 게임을 진행하고 1분이 지나면 다시 초기화면으로 돌아갑니다. 끝. 어떠신가요? 그럴싸한지 모르겠습니다.위와 같은 최종 게임형태를 위해서 좀 더 작업할 내용이.. 더보기