//cocos2d 로 프로그래밍을 할때 주의 해야 할 점을 몇가지 써보았습니다
//잘못된 정보가 있으면 댓글 달아주세요^^;
schedule("testMethod", 1f);
//잘못된 정보가 있으면 댓글 달아주세요^^;
1. schedule 시에는 public 타입으로 메소드를 불러준다
schedule("testMethod", 1f);
public void testMethod(float dt) {}
2. CGRect 사용법 : CGRect cRect = CGRect.make(시작x좌표 ,시작y좌표, 길이 ,높이);
CCTexture2D t2d = CCTextureCache.sharedTextureCache().addImage("test.png");
CCSpriteFrame frame1 = CCSpriteFrame.frame(t2d,CGRect.make(0,0,150,150),CGPoint.ccp(0,0));
//test.png에 좌측하단(0,0) 부터 150px*150px까지 이미지를 가져온다.
//test.png에 좌측하단(0,0) 부터 150px*150px까지 이미지를 가져온다.
3. image 크기가 제대로 안나올때는 sdk min 버전확인 하거나 manifest에 support-screen 을 nomal-size true, any-density true로 해준다
4. CCSequence action = CCSequence.actions(CCCallFunc.action(this, "ex"))
--> public void ex(){} , public void ex(Object obj){}
: CCCallFunc을 부를때에는 public 으로 불러준다
5.scene 전환시 메모리 해제
CCSpriteFrameCache.purgeSharedSpriteFrameCache();
CCTextureCache.purgeSharedTextureCache();
CCDirector.sharedDirector().purgeCachedData();
CCDirector.sharedDirector().getSendCleanupToScene(); //테스트중입니다^^;
6. open Gl 드로우 예제
@Override
public void draw(GL10 gl) {
CCDrawingPrimitives.ccDrawCircle(gl, CGPoint.make(100, 100), 10, 0, 10, false);//원
CCDrawingPrimitives.ccDrawCircle(gl, CGPoint.make(50, 50 / 2), 50, ccMacros.CC_DEGREES_TO_RADIANS(90), 50, true);
CGPoint vertices[] = {CGPoint.ccp(0, 0), CGPoint.ccp(50, 50), CGPoint.ccp(100, 50), CGPoint.ccp(100, 100), CGPoint.ccp(50, 100)};//다각형
CCDrawingPrimitives.ccDrawPoly(gl, vertices, 5, false);
}
}
7. CGPoint pt = this.convertToNodeSpace(x, y); //현재노드에서 원점으로 시작되는 좌표계를 얻어오는 함수
-> 만약 특정위치에 스프라이트를 만들었다면 스프라이트의 원점 좌표를 시작으로 새로운 좌표를 얻어
올수 있게한다.
8. 이벤트를 받을 수 있는 것은 레이어이다. 스프라이트에서는 불가능하다. 한 레이어에서 여러 스프라이트를 애드하여 이벤트를 받으면 프로그램도 길어지고 처리가 불편하다. 따라서 스프라이트에서 이벤트를 처리하는것이 좋다. 스프라이트에 이벤트를 주고 싶으면 레이어 터치 시 좌표를 받아와서 스프라이트를 상속받은클래스에서 좌표를 받아 convertToNodeSpace 메소드를 이용하여 처리하면 편리하다.
-> 만약 특정위치에 스프라이트를 만들었다면 스프라이트의 원점 좌표를 시작으로 새로운 좌표를 얻어
올수 있게한다.
8. 이벤트를 받을 수 있는 것은 레이어이다. 스프라이트에서는 불가능하다. 한 레이어에서 여러 스프라이트를 애드하여 이벤트를 받으면 프로그램도 길어지고 처리가 불편하다. 따라서 스프라이트에서 이벤트를 처리하는것이 좋다. 스프라이트에 이벤트를 주고 싶으면 레이어 터치 시 좌표를 받아와서 스프라이트를 상속받은클래스에서 좌표를 받아 convertToNodeSpace 메소드를 이용하여 처리하면 편리하다.
'Cocos2d' 카테고리의 다른 글
Cocos2d Android : 9장. cocos2d ConvertToNodeSpace (0) | 2012.02.17 |
---|---|
Cocos2d Android : 7장. Box2d DynamicBody (2) | 2012.01.14 |
Cocos2d Android : 6장 . plist를 이용한 애니매이션 (0) | 2012.01.10 |
Cocos2d Android : 5장 . Cocos2d Scene 전환 효과 (1) | 2012.01.06 |
Cocos2d Android : 4장 . Cocos2d 액션 정리 (0) | 2012.01.06 |