Game Programming/Game Engine

Cocos2d-x :: 3.x 대와 2.x의 차이점 및 변경점

VallistA2014. 7. 4. 16:11



Cocos2d-x 는 급속적인 발전을 하는 엔진입니다.

벌써 몇년동안 지속되어 왔으며, Cocos2d-x 의 전신인 cocos2d보다 더 높은 발전을 하고 있습니다.


자 이전 버전인 Cocos2d-x 2.x 대와 Cocos2d-x 3.x 대의 변경점에 대해서 알아봅시다.


1. 파이썬의 적극적인 사용


Cocos2d-x 2.x 대에서는 Cygwin 을 사용하여 리눅스 컴파일러로 크로스 플랫폼(안드로이드)을 지원했습니다.

하지만 Cocos2d-x 3.x 에서는 Cygwin을 과감히 버리고 (기존의 어려웟던 크로스 플랫폼 방식 개선) Python으로 전부 바꾼 행보를 보여줍니다.




<그림 1> 확 바뀌어 버린 build_native.sh -> build_native.py


그래서 안드로이드를 컴파일할떄 파이썬을 사용하여 더욱 편리한 컴파일을 지원하게 되었습니다.


2. 안드로이드 빌드의 개선


새롭게 APACHE를 지원하게 되어, Eclipse에서 빌드를 안하여도 콘솔창에서 빌드가 가능하도록 변경되었습니다.

(다만 Eclipse 고유로 사용하는 것의 경우에는 Eclipse를 켜서 Java 코딩을 하셔야 합니다)



3. CC 접두어의 제거


가장큰 변화 중 하나인 CC 접두어의 제거입니다.

EX)

CCSprite -> Sprite

CCFrame -> Frame

CCScene -> Scene 


등으로 변경이 되었습니다.


4. Auto 키워드의 적극적인 사용


Cocos2d-x 의 내부가 Auto 키워드를 적극적으로 사용합니다. 

Auto 키워드를 사용함으로써, Application.mk에 c++ 11버전을 지원하게 되었습니다.


5. SingleTon 메서드의 변환


기존에  있었던 싱글톤의 경우 전부 sharedDirector()로 되어 있었던게 getInstance() 로 변경이 되었습니다.


6. Container class 변경


기존에 많이 사용하던 컨테이너클래스가 변경되었습니다.


Container class 버전 2.0 ::


CCArray - > Vector<T> 

CCDictionary -> Map<K,V>


CCString -> cocos2d::Value


CCARRAY_FOREACH -> (c++ 11) range based for


7. Callback Macro 함수 변경


 menu_selector(callback)  -> CC_CALLBACK_0(callback , this)

callfunc_selector(callback) -> CC_CALLBACK_0(callback , this)


로 변경



8. CCObject 변경


CCObject -> Ref 변경



9. 물리엔진 통합


물리 엔진이 Cocos2d-x 에 통합되었습니다.

Box2d -> Chipmunk 로 변경되었습니다.



10. Sprite Rendering 성능 개선


Sprite 내부 처리 개선 : Renderer 와 Scene Graph의 분리


Auto Batching : 스프라이트 렌더링 속도 향상을 위해 SpriteBatchNode를 사용 안해도 됨


Prostum Calling : 화면 밖으로 나가는 스프라이트 자동으로 컬링 해줌









댓글

댓글쓰기 폼

VallistA

병특이 끝나서 게임에서 웹으로 스위칭한 프로그래머.
프로그래밍 정보등을 공유합니다.

자고 싶습니다. ㅠㅠ

페이스북    :: 링크
카카오톡    :: kingbye1
Github      :: 링크

궁금한점 문의 주시면 답변드리도록 하겠습니다

VISITED

Today : 16

Total : 417,261

SNS

  • 페이스북아이콘
  • 카카오톡아이콘
  • 트위터아이콘