본문 바로가기

cocos2d-x

Cocos Studio 예제 - 충돌검사, 애니메이션 적 캐릭터를 추가하고, 액션 버튼에 의해 적이 쓰러지도록 합니다. 지난 번에 못했던 애니메이션 관련 동작도 수정하려고 합니다.- 적 캐릭터 추가- 액션 버튼 : 액션 애니메이션 후, 대기 중인 애니메이션 동작- 액션 버튼 시 적에 맞으면 적 death 애니메이션 동작 충돌검사, 애니메이션1. 적 캐릭터 추가주인공 캐릭터와 마찬가지로 적 캐릭터 추가. 소스는 Cocos Studio 예제의 적 캐릭터를 사용했습니다. 2. 연속 애니메이션playWithIndexes(), playWithNames() 로 연속적인 애니메이션 동작 수행이 가능하지만, 전체 애니메이션이 루프로 동작하거나, 루프를 하지 않도록 설정하면, 마지막 애니메이션 종료 후 정지해버리는 단점이 있습니다. 원하는 동작은 "attack" -> "l.. 더보기
Cocos Studio 예제 - 버튼, 애니메이션 표코팡을 마치고, 새로운 게임프로젝트를 시작하기 전, 새롭게 추가된 내용도 많고 활용할 수 있는 부분들도 많은 것 같아서 공부가 필요하다는 생각을 했습니다. practice는 강좌 형식의 글은 아니고요. 제가 필요한 내용들을 확인하면서 공유할 내용들이 있으면 공유하고, 개인적으로 진행하고 있는 것을 기록할 목적으로 작성할 예정입니다. 1. cocos2d-x 3.2 & Cocos Studio - 버튼, 캐릭터 애니메이션 플레이 cocos2d-x 3.2 final 버전을 보면, 많은 예제를 제공하고 있는데요. cocos2d-x 게임개발에 필요한 대부분의 내용을 포함하고 있는 것 같습니다. 꼭 빌드해서 실행하기를 강추합니다!! /cocos2d-x-3.2/tests/cpp-tests 기본적인 동작이외에도 자료를.. 더보기
Cocos Studio 설치 및 간단한 테스트 표코팡을 만들어보면서 가장 힘들었던 점은 뭐니뭐니해도 '작업효율'과 관련한 부분인 것 같습니다. 1인 개발 게임을 만드는데 있어서 무엇보다 중요한 점이기도 한데요. 텍스트 에디터 기반에서 코드만으로 작업하려니 이미지 추가부터 배치까지 화면구성에 들어가는 시간이 너무나 오래걸리고, 결과물 또한 좋지 않았습니다. 언어도 C++를 선택했기 때문에 매 번 수정 후 빌드도 불가피했고요. 물론 제가 경험과 배움이 적어서 그렇기도 합니다만, 텍스트 기반으로는 비주얼적인 부분을 제어하기가 아주 불편하다는 것을 깨달았습니다. 꽤 오래 전부터 Cocos Builder와 Cocos Studio를 통해 이러한 부분을 해소할 수 있다고 알고 있었는데요. Cocos Studio같은 경우는 설명이 많이 없어서 그냥 건드리지도 않고.. 더보기
cocos2d-x 3.2 Final 설치 표코팡 글을 마무리하고 최신버전으로 migration 해보려고 하는데요. 홈페이지를 찾아가니 cocos2d-x 3.2 버전이 나왔네요. 아주 멋지게 "Final" 도 붙었습니다. 가볍게 다운받아주고 확인해보니 뭐가 많이 바뀌었습니다. 2.2.2 다음에 3.2 final 이라 메이저넘버도 바뀌고, final도 붙어서 그런지 너무 많이 바뀌었습니다. 프로젝트 생성도 못하겠네요. README.md 파일을 열어봐야겠습니다. ./setup.py 을 실행하니 쏼라쏼라 뭐가 없다고 나오고 뭐를 등록했다고도 나오고요.~/.bash_profile 파일을 열어보니 cocos2d-x에 필요한 환경변수와 경로를 자동으로 추가해놓았습니다. 한 가지. ANT 라는 놈이 설치가 안되었다고 하는데요. NDK와 android SDK .. 더보기
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.. 더보기