보통 횡,종스크롤 게임을 cocos2d-x를 이용하여 만들 때 CCParallaxNode를 방법으로 제시한다. 실제 예제로도 제안되어 있기도 하고. 하지만 나는 다음과 같은 이유로 인해 CCParallaxNode를 사용하지 않기로 결정했다. (대표적인 이유들만 쓰도록 하겠다.) 1. 별로 직관적이지 못한 구조CCParallaxNode가 '원래' 스크롤링을 위해 만들어진 클래스인지는 잘 모르겠다. 하지만 어쨌든 스크롤링을 구현하는데 별로 직관적이지 못한 구조를 가졌다. 보통 CCParallaxNode를 사용할 때 addObject를 하면서 얼마나 이동될 값인지를 나타내는 ratio를 넣고, 매 루프마다 CCParallaxNode의 position을 변경시키는 방법을 이용한다. 다른 사람들에게는 직관적일지는..
메뉴 아이템으로 스프라이트 쓰기엔 애매할 때는 그냥 텍스트 라벨로 만들어진 CCMenuItemFont를 사용하곤 한다. Lua에서는 이 노드에 터치시 어떤 행동을 하기 위해서는 registerScript 함수를 사용하는데... CCMenuItemFont는 괴랄하게도 터치와 관련된 registerScript 함수 이름이 registerScriptTapHandler이다.(참고로 CCLayer에서의 registerScriptTouchHandler이다.) 네이밍을 누가한건지 모르겠는데.... 걍 통일하는게 낫지 않겠다 싶다 - -;;
Lua에서 print 함수를 사용하면, 엔진상에서 콘솔에 Lua에서 프린트한 문자열을 띄워준다. 문제는 cocos2d-x 2.1.4 버전에서는 Lua print 함수와 관련해서 문제가 있었다 - -;; 함수상으로는 CCLog를 사용하는데, 이게 정상적으로 콘솔에 문자열을 띄우질 못하는 것이다. 다들 알다시피 CCLog는 매크로 함수라서.... 매크로 관련하여 약간 문제가 있기 때문에 이런 상황이 발생한 것이다.(http://www.cocos2d-x.org/boards/11/topics/27721) 위에 언급한 링크에서 제시한 방법과 다르게 나는 그냥 간단하게 printf 함수를 쓰는 것으로 해결했다. 어차피 윈도우에서만 개발할 예정이라.... 나중에 딱 한줄만 빼면 될듯하다.
Hello Lua 소스 코드를 분석합니다.이 글에서는 스프라이트 애니메이션을 만드는 코드를 살펴보겠습니다. -- 창 크기를 구함 local visibleSize = CCDirector:sharedDirector():getVisibleSize() -- origin을 구함 local origin = CCDirector:sharedDirector():getVisibleOrigin() -- 크기 지정 local frameWidth = 105 local frameHeight = 95 -- CCTextureCache를 불러와서 dog.png로 텍스쳐를 만든다. local textureDog = CCTextureCache:sharedTextureCache():addImage("dog.png") -- rect를 그림의..
Cocos2d-x에는 tinyxml2을 내장하고 있습니다. 결론부터 말씀드리자면 내장되어 있는 tinyxml2는 사용이 불가능합니다. -_-;; cocos2dx/support/tinyxml2/ 디렉토리에 tinyxml2이 있는데, 이걸 include하여 사용하면 링크에러를 뿜어냅니다. 따라서 tinyxml2을 이용하고 싶으면 자신의 프로젝트 Classes 디렉토리에 직접 tinyxml2 파일을 넣어줘야합니다. 그리고 소스에서 직접 추가한 tinyxml2 파일을 include해서 사용하면 됩니다. 그런데....https://github.com/cocos2d/cocos2d-x/issues/2238#issuecomment-20171426이 링크를 보니 Minggo(cocos2d-x 커미터)가 유저와 나눈 대화..
기존에 그냥 template으로 Visual Studio에서 생성했었는데 툴을 제공하고 있었더군요.(제가 완전 구닥다리였음....) 그 툴 사용하는 방법을 소개하려고 합니다. Cocos2d-x 디렉토리의 위치를 COCOS2DX_DIR이라고 하겠습니다.COCOS2DX_DIR\tools\project-creator의 위치로 가면 create_project.py이라는 파일이 보이실겁니다.네, 보시다시피 파이썬으로 만들어진 스크립트입니다. 예상하셨겠지만 이 스크립트를 이용하기 위해서는 파이썬이 필요합니다.제 작업환경에 설치되어 있는 Python의 버전은 2.7.4입니다.다른 버전에서도 이용 가능한지는 잘 모르겠군요. 파이썬 설치는 아래 링크를 참조하시면 될 듯 합니다.http://dev.claztec.net/7..
Screen 모드를 Landscape로 했을 때는 에러가 발생하지 않지만 Portrait로 하면 에러가 발생합니다. 2.0.4 버전으로 업그레이드 되면서 ios 관련 소스코드가 제대로 업데이트 되지 않아서 발생한 문제인데요. 손쉽게 해결 가능합니다. 먼저 2.0.4 버전에서의 xcode template을 등록하여 새로운 프로젝트를 만듭니다. 그리고 소스코드의 ios 부분에서 RootViewController.mm 파일에서 아래 부분을 바꿔주시면 됩니다. 원래 소스는 이렇게 되어 있을 겁니다. return 부분의 소스를 위와 같이 변경해주시면 에러가 사라집니다. 난생 처음 보는 에러인지라 난감했네요.Cocos2dx팀에서도 대응이 느리더군요. 상당히 치명적인 버그인데. 오늘도 삽질 없는 하루 되세요.
Cocos2d-x를 이용하여 프로그래밍하다 보면 이런 저런 이유로 인해서 Apple Mach-O Linker Error를 경험하게 됩니다. 모든 상황에서 아래의 방법이 적절한 해결 방법이지 않을 수 있습니다만 어렵지 않으니 한 번 해봐도 괜찮겠죠. 저 같은 경우에는 라이브러리를 읽어오지 못해 이런 에러가 발생했던 것인데요.XCode에 대한 경험이 별로 없다보니 긴 시간 삽질 끝에 해결했답니다. 먼저 자신의 프로젝트에 $COCOS2DX_HOME/cocos2dx/proj.ios/cocos2dx.xcodeproj를 폴더에 추가.(iOS 관련 에러이기 때문에 위 프로젝트를 추가함으로써 ios에 해당하는 cocos2dx 라이브러리 로드를 하는겁니다.) 위 그림을 보면 Linked Frameworks and Lib..
- Total
- Today
- Yesterday