[ndc2014] 직접 만들어서 즐겨보자 - cocos2d-x3.0으로 한 시간만에 횡스크롤...

Post on 14-Apr-2017

8.074 Views

Category:

Software

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

직접 만들어서 즐겨보자!

Cocos2d-x 3.0으로 한 시간 만에횡스크롤 슈팅 게임 만들기

넥슨코리아 라이브개발본부

함동기

강연자 소개

자체엔진

Cocos2d-iPhone,Cocos2d-x

Unity

발표를 시작하기 전에..

직접 만들어서 즐겨보자! –Cocos2d-x 3.0으로 한 시간 만에 횡스크롤 슈팅 게임 만들기

구할 수 없다면 직접 만들자! –Cocos2d-x 3.0으로 30분 만에 Flappy Bird 만들기

Cocos2d-x 소개

Cross Platform Open Source Light weight & Fast running Simple Easy to Learn APIs

출처: http://cocos2d-x.org/product

• Highlights of v3.0

• Replaced Objective-C patterns with C++ (C++11) patterns and best practices

• Improved Labels

• Improved renderer (much faster than in v2.2!!)

• New Event Dispatcher

• Highlights of v3.0

• Physics integration

• New UI objects

• JavaScript remote debugger

• Remote Console support

• Use cocos console to create and run project

• Highlights of v3.0

• Refactor Image - release memory in time and uniform the api of supported file format

• Automatically generated Lua bindings, add LuaJavaBridge and LuaObjcBridge

• Templated containers• CCDictionary is replaced by cocos2d::Map<>• CCArray is replaced by cocos2d::Vector<>• CCBool, CCFLoat, CCDouble are replaced with

cocos2d::Value

Zhe Wang is the founder of cocos2d-x(cocos2d-x를만드신분).

• 발표 방향

• 기존 Cocos2d-x 2.x버전의 프로젝트를 3.0으로 포팅

• 게임 제작 단계에 따라 소스 분석

• 자연스럽게 Cocos2d-x 2.x vs 3.0 차이점 소개

기존 Cocos2d-x 2.x 프로젝트

출처: github.com/lizhi5753186/MyFlappyBird

Cocos2d-x 3.0 프로젝트 생성

리소스 (이미지 및 데이터)

flappy_packer.png(flappy_packer.plist)

bg.png

ground.png

flappy_Frame.plist

리소스 로딩

[Cocos2d-x 2.x 버전]

배경 생성

장애물 생성

장애물을 미리 여러 개 만들어 두는 방식.

배경 스크롤

유저 캐릭터 생성

캐릭터 애니메이션

동영상

캐릭터 비행 및 이동

충돌 체크

기록(점수) 시스템 구현

터치 이벤트 처리

• Event distribution mechanism (이벤트 분산 메커니즘)

• EventDispatcher: 터치, 키보드, 중력센서 등의 모든 이벤트 처리

• 기존 TouchDispatcher, KeypadDispatcher, KeyboardDispatcher, AccelerometerDispatcher 모두 삭제됨.

• 콜백 함수로 lamda(람다) 사용 가능 (C++11 지원)

• 터치 이벤트를 위해 구현해야 하는 메서드 (2.x)

• virtual void registerWithTouchDispatcher (void);• virtual void ccTouchesBegan (cocos2d :: CCSet * pTouches,

cocos2d :: CCEvent * pEvent);• virtual void ccTouchesMoved (cocos2d :: CCSet * pTouches,

cocos2d :: CCEvent * pEvent);• virtual void ccTouchesEnded (cocos2d :: CCSet * pTouches,

cocos2d :: CCEvent * pEvent);• virtual void ccTouchesCancelled (cocos2d :: CCSet * pTouches,

cocos2d :: CCEvent * pEvent);

• 터치 이벤트를 위해 구현해야 하는 메서드 (3.0)

• bool onTouchBegan(Touch *touch, Event *event);• void onTouchMoved(Touch *touch, Event *event);• void onTouchEnded(Touch *touch, Event *event);

동영상

그 외 개발 팁

• 크로스 플랫폼 개발 시 주의사항

• super 키워드 대신 부모 클래스 이름 사용.

• 폴더 구분자는 “/”로 통일.

• standard C 라이브러리 및 STL 사용.

super 키워드는 MS VC++에서만사용가능.

특히 Win32 API와표준 C 라이브러리를잘구분해야함.

top related