본문 바로가기

Cocos2D-x22

TexturePacker 무료 라이센스 받기 도전2 TP:E7BDDAF6 왜 안주지? ㅠ.ㅠ 계속 안주면 4만3천원쯤 주고 사야하는데그 정도는 주고 살만한 프로그램이긴 하다. 20년 전에도 게임하나 사는데 3~4만원 정도 썼던거 같으니.. @.@ 2016. 3. 7.
TexturePacker 무료로 받기위해서 포스팅 TexturePacker를 무료로 받기위해서 아래의 코드를 블로그에 적으라고 한다.아래의 링크에 가서 간단하게 작성하면 무료 라이센스를 줍니다.39.9달러 주고 사려다가 이 방법을 발견하고 한번 해봅니다. 정말로 무료라이센스를 준다면 이 글에 결과를 첨부하겠습니다. ^^ https://www.codeandweb.com/request-free-license TP : E7BDDAF6 https://www.codeandweb.com/texturepacker 2016. 3. 3.
한글쓰기 헤더파일이 이거 하나 넣어주면 끝. 인터넷에 구버전 정보는 넘쳐나는데 쓸만한건 없네요. 틀린정보를 안보이게 가리는 방법이 있으면 좋겠습니다. 찾느라 시간만 낭비하고.. ㅠ.ㅠ 소스파일은 utf-8로 저장되어 있어야한다. #pragma execution_character_set("utf-8") 포천 오성과 한음 폰트랍니다. ^^ 2016. 1. 27.
android studio 에서 로드하기 cocos2d-x v3.10 에서는 android studio를 지원한다.언제부터 지원했는지는 모르겠지만, 이 버전부터는 확실하게 동작한다. 그것도 아주쉽게 ^^ 컴파일할때 아래처럼 하자. cocos compile -p android --android-studio 이렇게하고 android studio에서 로드하면 끝! 너무 간편하다. 실행할때도 쉽다. (저는 배치파일 만들어서 그냥 클릭합니다. ^^) cocos run -p android --android-studio 2016. 1. 27.
GL Blendfunc Test Page http://www.andersriggelsen.dk/glblendfunc.php 2015. 3. 25.
[v3.x] android.mk cpp파일 자동컴파일 추가 자동 CPP 소스파일 추적 및 추가 프로젝트/jni/Android.mk 파일을 수정합니다 LOCAL_SRC_FILES := hellocpp/main.cpp \../../Classes/AppDelegate.cpp \../../Classes/HelloWorldScene.cpp부분을 FILE_LIST := $(wildcard $(LOCAL_PATH)/../../Classes/*.cpp)LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%)LOCAL_SRC_FILES += hellocpp/main.cpp 로 변경합니다. Classes폴더 안에 있는 모든 cpp파일을 자동으로 빌드 시에 포함시키도록 변경하는 것입니다.물론 LOCAL_SRC_FILES부분을 늘려나가도 되겠지만 그런.. 2014. 11. 25.
[v3.x] cocos2d-x 기본 사용법 정리 cocos2d-x 기본 사용법 정리※ cocos2d-x 3.4 기준 ** 설치하기 - cocos2d-x 설치cocos2d-x홈페이지의 다운로드 페이지에서 받는다.(옆에 있는 cocos2d-js랑 헷갈릴 수 있으니 잘 보고 설치.)다운로드 한 다음 적당한 곳에 압축을 푼다. - python 설치뜬금없이 웬 파이썬인가 하면 setup.py를 실행해서 cocos 명령어를 만들어내기 위해서이다.그 외에도 tools에 있는 도구들이 전부 파이썬으로 만들어져 있다.python 홈페이지의 다운로드 페이지에서 2.x.x 버전의 python을 받아 설치한다.(3.x.x를 설치하면 setup.py가 2.x.x버전을 받아오라고 한다...)설치 과정에서 딱히 손 볼 곳은 없다. - setup.py 실행파이썬을 설치했다면 그냥.. 2014. 11. 20.
화면에 동그라미 그리기 - CCProgressTo 이용 화면에 동그라미 그리기 - CCProgressTo 이용 CCSize s = CCDirector::sharedDirector()->getWinSize();CCProgressTo *to1 = CCProgressTo::create(0.5f, 100);CCProgressTimer *left = CCProgressTimer::create(CCSprite::create("cicle.png"));left->setType( kCCProgressTimerTypeRadial );addChild(left, 4);left->setPosition(ccp(s.width/2, s.height/2));left->runAction( to1); 이미지는 아래 그림을 이용하면 된다. 2014. 11. 5.
CocoStudio에서 생성한 Animation v2.x에서 사용하기 (출처: 메뉴얼) Use in Project - v2.x 인듯 (2.0.4는 안됨?!)ExportFrom the File menu, select the Export Projects option. Sets the export directory and other options. Select Yes to start the export. Copy file Copies all files located in the export directory to the project's Resource directory. UseCopies export files to the Resource directory.//async loading export file CCArmatureDataManager::sharedArmatureDataManager(.. 2014. 11. 4.
CocoStudio에서 만든 Animation을 Cocos2d-x에서 불러오기 CocoStudio에서 만든 Animation을 Cocos2d-x에서 불러오기 * cocos2d-x v3.3rc0에서 테스트 완료. (cocostudio v1.6에서 생성) 0. 다음을 include한다. #include "cocostudio/CocoStudio.h" 1. 파일을 읽어온다. cocostudio::ArmatureDataManager::getInstance()->addArmatureFileInfo( "Animation/Hero/Hero0.png", //png파일. "Animation/Hero/Hero0.plist", //plist파일. "Animation/Hero/Hero.ExportJson"//ExportJson파일); 2. Armature객체 생성. cocostudio::Armature .. 2014. 11. 3.
[v3.3rc0] 안드로이드 단말에서 동영상파일 재생하는 방법 안드로이드 단말에서 동영상파일 재생하는 방법 아래의 소스로 안드로이드 단말에서 정상동작 확인했다. (중국산 저가 단말에서도 정상)단, 기본기능만 지원한다. Play, Stop, Pause, Resume, Seek, IsPlaying 등.재생위치 구하는 함수는 없으므로 직접 구현해야한다. (구현된 소스보면서 하면 쉽게 될듯.)iOS에서는 테스트하지 않았지만, 비슷하게 구현하면 될것이다. HelloWorld Scene cpp, h 압축: #include "ui/UIVideoPlayer.h" #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)using namespace cocos2d::experimental::ui;#endif // 멤버 함수 및 변수 추가private:#if.. 2014. 10. 31.
Bitmap font 생성기 Free Bitmap Font Generator - BMFont Tool 훨씬 좋은 품질의 비트맵폰트를 만드는 사이트를 발견했음. (외곽선, 채우기, 그림자 등 효과를 줄 수 있음. 현재까지 발견한 것 중 최고다!)http://kvazars.com/littera/ 게임을 만들다 보면 이쁜 폰트가 필요할 때가 있습니다. 보통 채팅창 같은 경우는 시스템 폰트 또는 TTF를 사용해서 폰트를 출력을 하고 기타 나머지 글자는 이미지 폰트를 사용하는 경우가 많죠. 디자이너가 만들어주거나 툴로 생성한 비트맵(이미지) 폰트를 이용하거나 아니면 폰트 자체를 만들거나 해서 한결 이쁜 폰트를 게임에 적용할 수 있겠죠. 이번 포스팅에서는 디자이너를 거치지 않고 비트맵 폰트를 만들 수 있는 툴에 대해 정리해봅니다. 본격적인 소.. 2014. 10. 27.
ScrollView 간단 사용법 ScrollView 간단 사용법 /////////////////////////////////////////////////////////////////////////////////// \brief 랭킹 표시//////////////////////////////////////////////////////////////////////////////// void Ranking::drawRanking(){const int ROW_HIGHT = 40; vector *pVec = &m_xmlParser.m_vecRanking; int ySize = ROW_HIGHT * pVec->size();CCSize size = CCSizeMake(630, ySize); ccColor4B color4 = { 253,213,187.. 2014. 10. 6.
윈도우 환경에서 메모리 릭 체크 방법 출처: http://shader.tistory.com/162 1. cocos2d-x 엔진을 기반으로 윈도우에서 멀티플랫폼 게임을 만들시에 간단하게 메모리에 릭이 발생하는 것을 체크할 수 있습니다. 2. 기억력이 떨어져서 복사&붙여넣기 신공을 위해 여기에 백업합니다. 3. cocos2d-x 2.1.5 에서 디폴트로 4바이트 정도 메모리 릭이 있네요. (v2.0.4 에서도 4 Byte발생) #include "main.h" #include "AppDelegate.h" #include "CCEGLView.h" //------------------------------------------------------------------------USING_NS_CC ; //------------------------.. 2014. 9. 18.
Google Play Game Services SDK Google Play Game Serviceshttps://developer.android.com/intl/ko/google/play-services/games.html Make your games social with Google Play game services. Add achievements, leaderboards, real-time multiplayer, and other popular features using the Google Play game services SDK. Let players sign in using their Google+ identities and share their gaming experience with friends.Explore the Google Play Gam.. 2014. 8. 18.
CCSpriteBatchNode CCSpriteBatchNode출처: http://digitanomad.blogspot.kr/2012/12/ccspritebatchnode.html 게임을 개발하다 보면, 이미지 처리에 있어 성능 상의 문제에 직면하게 됩니다. 예를 들면, 슈팅 게임을 개발할 때 탄막을 표현한다고 합시다. 일반적으로 총알을 화면에 표시하려면 CCSprite 객체를 사용합니다. 이 때 총알 하나하나를 모두 화면에 표시하려고하면 엄청난 갯수의 CCSprite 객체를 생성해야 되는데, 분명히 기기 성능에 문제가 발생할 것입니다. 이러한 그리기 성능의 문제를 해결하기 위해 CCSpriteBatchNode를 사용해야 합니다. 1. CCSpriteBatchNode (1) 설명 1) Cocos2d 0.9x 버전 이하에 있던 CCSpr.. 2014. 8. 14.
Animation 구현 그림으로 된 소스 첨부. 잘 정리된 출처: http://cocos2dx.tistory.com/entry/CCAnimation-cocos2dx-%EC%97%90%EC%84%9C-%EC%95%A0%EB%8B%88%EB%A9%94%EC%9D%B4%EC%85%98-%ED%95%98%EA%B8%B0 void FirstGame::createBirds(float dt){CCSpriteFrameCache* cache = CCSpriteFrameCache::sharedSpriteFrameCache();cache->addSpriteFramesWithFile("bird_ani.plist"); CCSprite* bird = CCSprite::createWithSpriteFrameName("bird_ani_1.png");bir.. 2014. 8. 14.
[cocos2d-x 3.0] ParallaxNode [cocos2d-x 3.0] ParallaxNode cocos2d-x 2.0.4에서도 정상동작한다. (클래스명에 앞에 CC 붙여주고.. 조금 수정해야함) ParallaxNode, 패럴랙스 노드는 간단히 말해, 배경을 스크롤 해주는 클래스이다. 만약, 게임에서 하나의 배경 이미지만 있고, 그걸 스크롤? 또는 이동시킬 필요가 있다면 그냥 스프라이트 하나를 이용해서 이동시켜주면 될것이다.그럼, 패럴랙스노드가 뻘짓인가??? 아니.. 패럴랙스노드는 여러겹?의 배경이미지를 스크롤시킬 때 그 진가를 발휘한다.여러개의 배경 이미지를 서로 다른 속도로 스크롤을 해 줄 수 있다. 예를 들어보면....자동차를 타고 달리면서 차창 밖을 보면, 가까이 있는 사물은 휙휙 빠르게 지나가지만, 멀리 보이는 들판, 산들은 천천히 움직.. 2014. 8. 13.
[Menu] Touch Action을 지정할 수 있는 메뉴 클래스 Touch Action을 지정할 수 있는 메뉴 클래스 메뉴에 Normal, Touched 각각의 이미지를 지정하려면 매번 이미지 2개씩이 필요하다.이 문제를 간단하게 해결하기 위해서 Menu 버튼눌렀을때 실행할 Action을 지정할 수 있는 클래스이다. #include "MenuEx.h"#include "MenuItemImageEx.h" bool Home2::CreateMenu(){bool bRet = false; do{CCSize s = CCDirector::sharedDirector()->getWinSize(); // 버튼 액션CCAction* clickAct = CCScaleTo::create(0.1f, 1.1f);// 터치 액션CCAction* unClickAct = CCScaleTo::creat.. 2014. 5. 9.
GraySprite Class 커스텀 쉐이더를 활용한 흑백 Sprite 만들기 다른 분이 만든 Gray Sprite 소스입니다.중국쪽 소스인데 cocos2d-x v2.0.4 및 v2.1.4에서 동작하도록 다른분 소스도 병합했습니다.현재는 v2.0.4에 맞도록 되어있으므로 v2.1.4 사용하는 분은 cpp 쪽 주석을 풀어주세요. (draw() 함수) 출처: http://www.cocos2dev.com/?p=325 GraySprite* disable = GraySprite::create(szPath);disable->setGray(true);pItem->setDisabledImage(disable);pItem->setEnabled(false); 2014. 4. 24.
v2.2.2 변환 오류 해결방법-1 [-Werror=format-security] 요녀석 덕분에 최신 android ndk r9에서 error가 발생하고 있었다. 기존에 쓰던 version이 r8b라 compile이 잘되어 혹시나 최신에서 문제 없나 확인하다 발견한 문제인데 해당 error의 해결은 의외로 간단했다. [Application.mk]APP_CFLAGS := -Wno-error=format-security 위 flag만 넣어주면 해당 error가 발생하는 부분을 warning으로 처리하고 compile이 정상적으로 되는것이다. 물론 warning도 해결해야 겠지만 급하게 확인해야 한다거나 중요한 부분이 아니라면 위 flag를 추가해 컴파일해도 문제 없이 잘 동작한다. 고객의 요청에 의해 작업한 cygwin 덕분(?)에 의외의 e.. 2014. 3. 4.
개발한 유아용 App 유아용 App에 간단한 게임 6개를 개발하는 업무를 맡았었습니다.처음엔 약간 생소했지만, C++로 VC++에서 디버깅이 가능해서 손쉽게 접근할 수 있었네요. 구글링 열심히 하면 자료도 많고, 2D라 난이도가 높진 않았습니다.다만, 이것 저것 잡다한 버그와 APK 용량제한 때문에 번거롭기도 하고 JNI 때문에 귀찮은 작업이 약간은 있었지만, 대체로 수월한 작업들 이었네요.아!!! 메모리 관리가 제일 골치 아팠습니다. ㅠ.ㅠ Scene 전환 시 속도 지연도 역시 이슈가 됐었구요.아래는 저희 팀에서 만든 유아용 App 입니다. 현재까지 총 33개 App을 제작했으며, 앞으로로 계속 진행할 예정입니다.무료버전: https://play.google.com/store/apps/details?id=com.techno.. 2013. 10. 2.