본문 바로가기

cocos2d-x

Cocos2d-X iOS에서 완전히 종료시키기 본인의 경우 Cocos2d-x 와 iOS native를 ViewController 단위로 실행하게 만들면서 알게된 문제입니다.Cocos2d x 의 버전은 cocos2d-2.0-x-2.0.4 입니다. 원래라면 CCDirector::sharedDirector()->end(); 호출을 하면 Cocos2d-x와 관련 된 모든 것들이 종료가 되어집니다. 하지만 프레임은 떨어지지 않지만 다시 실행시키면 시킬 수록 터치의 반응속도가 점점 떨어지는 것을 발견 원인은 CCDirectorCaller 클래스에서 문제가 있었습니다. +(id) sharedDirectorCaller{ if (s_sharedDirectorCaller == nil) { s_sharedDirectorCaller = [CCDirectorCaller n.. 더보기
[cocos2d-x] CCDirector로 end() 함수 호출 문제... Cocos2d-x에서 CCDirector로 end() 함수를 호출할 때의 문제점은 계속해서 따라가면 terminateProcessJNI();를 호출하고 이건 cocos2d-2.0-x-2.0.4/cocos2dx/platform/android/java/src/org/cocos2dx 경로에 있는 Cocos2dxHelper의 terminateProcess() 를 부른다. 여기서 보면 android.os.Process.killProcess(android.os.Process.myPid()); 을하는데 이것을 activity를 static하게 저장하여 finish를 호출하는 방식으로 바꾸면 정상적인 종료가 된다. 더보기
[cocos2d-x] CCLayer 또는 CCSprite clipping하기 draw 함수에서 아래와 같이 사용하면 된다.따로 kmGLPushMatrix(), kmGLPopMatrix()를 호출 하지 않아도 된다. glEnable(GL_SCISSOR_TEST); CCEGLView::sharedOpenGLView().setScissorInPoints(clippingRegion.origin.x + getPosition().x, clippingRegion.origin.y + getPosition().y, clippingRegion.size.width, clippingRegion.size.height); CCNode::visit();glDisable(GL_SCISSOR_TEST);[출처] cocos2d-x 레이어 클리핑 시키기|작성자 김아키라 더보기