본문 바로가기

Dev/Cocos2D

cocos2D 2.x 텍스쳐 생성(+스프라이트) int width = 320; int height = 5; int textureWidth = ccNextPOT(width); int textureHeight = ccNextPOT(height); unsigned int size = textureWidth * textureHeight * sizeof(ccColor4B); ccColor4B * pixels = (ccColor4B *)malloc(size); memset(pixels, 0, width * height * sizeof(uint)); for ( int y=0; y 더보기
[링크] Thread와 Cocos2d 링크 : Thread와 Cocos2d 요약 : 우선 load resource를 위한 thread 구현에 가장 참고될만한 포스트이며 간단명료하면서도, Thread와 Autoreleasepool을 연관지어 mainThread를 이용하는 이유와 방법을 잘설명해주었다. 더보기
CCSpriteBatchNode의 기본 사용법 시간 관계상 짤막하게 요약만 하여 작성하겠습니다. 1. batch를 쓰면 좋은점 : 첫째, 다중레이어 효과등 스프라이트간의 속도, 간격 조절등이 용이하게 메소드화 되어 있어서 관리하기가 편함 : 둘째, 가장 중요한 부분인데, opengl의 drawcall을 최소화하여 퍼포먼스 비용을 최소화할수있음.(속도향상 기대) 일단 급하게 적은 장점으로는 위의 2가지가 있음. 나머지도 더있겠지만... 2. 사용법 : 간단하다. 일반 스프라이트처럼 BatchNode를 생성하고 사용할 스프라이트들을 child시켜주면 끝. : 단! BatchNode 생성시 file 혹은 texture를 요구하는데, 이게 포인트임. (정확하게는 텍스쳐를 요구한다. 생성 방법이 file로도 될뿐, 결국은 해당 file의 텍스쳐만을 불러와서 .. 더보기
cocos2d의 터치 우선순위(priority)는 낮은것부터 ! 아놔.. 한창을 이것때문에 골머리 썩힌 ㅠㅠ..결론부터 말하면 레이어등, 딜리게이트등 터치 우선순위(priority)를 정해줄땐낮은것이 1순위 이라는것.. 즉, 오름차순..ㅠㅠ (int_min이 1순위!!)당연히 높은게 먼저지! 라고 단정짓고 시작하는게 아니었는데 OTL.. 스프라이트 관리는 기본적으로 꽤 되는 상태인데.. 아직 레이어딴에서 가지고 노는건 버겁다.특히나 다중 터치를 관리하는건... -_-;; 하아.. 나중에 터치 부분이나 따로 정리해서 올려야겠당.. 더보기
패턴등의 이미지 배열시 검은 줄 제거 ccConfig.h 파일의 #ifndef CC_FIX_ARTIFACTS_BY_STRECHING_TEXEL #define CC_FIX_ARTIFACTS_BY_STRECHING_TEXEL 0 #endif 부분에서 0 -> 1 로 변경. (off > on)스프라이트를 그릴때 계산하는 부분식을 바꾸는거라는데, 정확히는 모르겠당..내가 진행하고 있는 프로젝트에서는 일단 쓸일이 없지만...서도, 혹시 모르니~ 메모 ! #define CC_SPRITEBATCHNODE_RENDER_SUBPIXEL 0 //FIX 1 -> 0 더보기
스케쥴(Schedule) 액션(RunAction) 등이 오류없이 실행되지 않을때는 isRunning_ 을 살펴보자 Cocos2d에서 CCNode는 객체를 이루는 가장 기본적인 요소이다. 흔히들 알고 계시는것처럼 Node는 Layer에 속하게 되면서 각종 메소드들을 수행한다. 각종 디자인패턴들을 적용하면서 신나게 코딩과 로깅을 하는데.. 난데 없이 스케쥴이 먹통인걸 발견하고 당황했다.이유인즉슨 디버깅과 로깅을 통해 잘 붙었는지 적용되었는지 확인만 할뿐, 막상 객체(여기서는 Node)가어느 레이어에도 속해 있지 않은 실수를 범함으로서 ㅋㅋㅋㅋisRunning의 값이 계속 False 였던것..(cocos 시스템 구조상 node는 레이어에 붙여줘야함 ! )스케쥴을 비롯해 runAction 등의 메소드 들은 isRunning의 여부를 꼭 체크하게 되어 있다. 다루기 쉬운 프레임워크라 생각하고 겉만 훑어보다가 생긴 폐해..조금.. 더보기
BezierCurve(베지어 곡선) Sample(예제) 정리 (CCBezierBy기준) Bezier곡선은 그래픽툴의 펜툴과 같은 기능이라고 보면 된다. 포인트로 하여금 사이의 곡선을 구하는 생각보다 친숙한 개념이다. (자세하진 않지만 참고할 수 있는 관련 포스트 링크 : http://sharphail.tistory.com/61 ) 기본적인 베지어 곡선 샘플을 몇개 만들어 놓고 변형하여 사용할 수 있도록 차근차근 본 포스트를 작성할 예정입니다. 1. 보다 이해하기 쉽고 빠른 변형을 위하여 예제들은 CCBezierBy를 기준으로 만들었습니다. 2. cocos2d를 아무리 뒤져보도 2차원 곡선밖에 지원을 안하는것 같아서 예제들은 '2차원 곡선'을 기준으로 합니다. 3-1. BezierBy인만큼 startPosition의 위치는 크게 상관없다고 생각하여 별도 표시하지 않았습니다. 3-2. 컨트롤포.. 더보기
CCBezier(베지어 곡선)를 사용할땐 controlPoint(컨트롤 포인트)를 조심하자 베지어 곡선을 처음접하신분들은 다음의 링크들(이미지 위주)을 보시면 이해가 빠르실겁니다.1. http://en.wikipedia.org/wiki/User_talk:Twirlip (wiki Bezier Cuver Animation)2. http://eunchul.com/Algorithms/BezierCurves/BezierCurves.htm (수학적인 이해)3. http://cakel.tistory.com/entry/B%C3%A9zier-curves-%EB%B2%A0%EC%9D%B4%EC%A7%80-%EA%B3%A1%EC%84%A0 (베지어 곡선에 관한 자료를 이미지 위주로 잘 종합해놓은 포스트) 시간관계상 이번 포스트는 링크 위주로 갑니다 ! 더보기