SlideShare a Scribd company logo
1 of 103
Download to read offline
Cocos2D 기초

                 창원대학교 박동규 ( @dongupak )
                       2013년 3월




                         창원대학교


13년	 2월	 7일	 목
발표자 소개




                 창원대학교 정보통신공학과 교수 박동규
                     (YES, I’m a developer!!)
13년	 2월	 7일	 목
iOS game engines
                 Sparrow                cocos2d




                 oolong                 Galaxy




13년	 2월	 7일	 목
iOS game engines
                 Corona                Game salad




                                         Unity
                 iTorque




13년	 2월	 7일	 목
and much more

                 • Unreal Engine : Unreal Development Kit for
                   iOS
                  • https://www.youtube.com/watch?
                     v=J9hAHv-Lhzc
                 • Marmalade, Stonetrip S3D

13년	 2월	 7일	 목
cocos2d games


           Tap Pet Hotel: #1 Free   Zombie Farm: #6 Free




                 Tap Zoo: #2 Free      iStunt 2: #6 Free
13년	 2월	 7일	 목
cocos2d games


                 Air Penguin: #1 Paid   ZombieSmash: #1 Paid




            Fishing Frenzy: #7 Paid       Trainyard: #2 Paid
13년	 2월	 7일	 목
Cocos2d for Mac App




13년	 2월	 7일	 목
Cocos2D

                 • 오픈 소스 2D 프레임워크
                  • 2D 게임, 데모, 그래픽, 대화식 응용프로그램
                 • 2008년 9월 0.3.0 발표
                 • 수백개 이상의 앱이 Cocos2D로 개발되어 앱
                  스토어에 등록됨



13년	 2월	 7일	 목
특징
                 • Flow Control
                  • 서로 다른 Scene간의 흐름제어
                 • Sprite
                  • 손쉽고 빠른 스프라이트 활용
                 • Action
                  • move, rotate, scale등의 액션 수행
13년	 2월	 7일	 목
특징
                 • Effect
                  • Wave, twirl, lens등의 다양한 2D 효과
                 • Tiled Maps, Transition, Menus, Text
                   Rendering

                 • 물리엔진제공 : Chipmunk, Box2d, Particle
                   System


13년	 2월	 7일	 목
특징

                 • Parallax scrolling
                 • High Score server(Cocos live)
                 • OpenGL ES 1.1 기반 - iOS
                 • OpenGL 1.5 기반 - Mac

13년	 2월	 7일	 목
장점
                 • 예제코드가 많이 포함되어 있다
                 • OpenGL ES의 Wrapping이다.
                  • OpenGL에 관한 지식이 있다면 매우 쉽게
                   배울 수 있다

                 • 용량이 적은 게임개발이 가능하며 풍부한 API
                  가 제공된다


13년	 2월	 7일	 목
Cocos3D


                 • 2012.11. - cocos3d 0.7.2
                 • Objective-C 언어로 작성됨


13년	 2월	 7일	 목
Cocos3D Features
                 • Seamless integration with cocos2d
                 • pluggable loading framework for 3d models
                 • 3d 모델 선택가능, 터치가능
                 • 3d 애니메이션 지원
                 • scene graph 구조를 통한 3d manipulation
                 • ......
                          http://brenwill.com/cocos3d/
13년	 2월	 7일	 목
Cocos2d 설치




13년	 2월	 7일	 목
설치




13년	 2월	 7일	 목
설치(super easy)




13년	 2월	 7일	 목
설치(super easy)




13년	 2월	 7일	 목
설치(super easy)




13년	 2월	 7일	 목
설치(super easy)




13년	 2월	 7일	 목
설치(super easy)




13년	 2월	 7일	 목
설치(super easy)




13년	 2월	 7일	 목
샘플 구동하기




                 좋은 예제들이 너무나 많습니다.
13년	 2월	 7일	 목
Cocos2D구성




                 풍부한 예제와 소소코드 - 공부하기 좋다.


13년	 2월	 7일	 목
예제




13년	 2월	 7일	 목
Cocos3d 설치




13년	 2월	 7일	 목
설치




13년	 2월	 7일	 목
cocos3d 템플릿




13년	 2월	 7일	 목
Hello world 샘플




13년	 2월	 7일	 목
Demo
                 Cocos2D for iPhone, demo 1,2,3




13년	 2월	 7일	 목
and More




13년	 2월	 7일	 목
Cocos2D의 구조

                 • Cocos2D 클래스들은 CCxxx라는 네임스페
                  이스를 가진다.

                 • Director(CCDirector)
                  • 싱글턴 객체, 게임의 흐름을 Scene을 통하여
                   관리

                  • OpenGL ES 환경 설정
13년	 2월	 7일	 목
Cocos2D의 구조

                 • Scene
                  • 게임의 스크린에 해당함
                  • 하나의 배경을 구성함
                  • 여러개의 Scene을 이용하여 게임을 구성

13년	 2월	 7일	 목
Cocos2D의 구조
                 • Layer
                  • Scene에 포함되는 객체
                  • 사용자의 이벤트를 입력받을 수 있다
                 • Sprite
                  • 실제로 움직이는 캐릭터나 무기
                  • 보통은 이미지임
13년	 2월	 7일	 목
CCLayer




13년	 2월	 7일	 목
CCLayer




13년	 2월	 7일	 목
CCLayer
                 • 터치, 시간, 가속도 이벤트 처리
                  • isTouchEnabled_
                  • isAccelerometerEnabled_

                 • 게임 컨트롤러
                 • 게임 엔티티의 관리 - CCNode



13년	 2월	 7일	 목
CCSprite




                   Texture
                    Texture
13년	 2월	 7일	 목
CCSprite




                              Sprites
                   Texture
                    Texture
13년	 2월	 7일	 목
Cocos2D의 구조

                 • Action
                  • Cocos2D 노드의 속성을 시간에 따라 변경
                   시기는 클래스

                  • 스프라이트, Scene에 애니메이션을 줄 수 있
                   다



13년	 2월	 7일	 목
CCNode: Coordinate




13년	 2월	 7일	 목
CCNode: Coordinate
                       contentSize.width




                                           contentSize.height
13년	 2월	 7일	 목
CCNode: Coordinate




13년	 2월	 7일	 목
CCNode: Coordinate




13년	 2월	 7일	 목
CCNode: Coordinate
                                anchorPoint



                                      rotation
                          ion
                      sit
                    po




13년	 2월	 7일	 목
CCNode: Coordinate




13년	 2월	 7일	 목
CCNode: Coordinate




13년	 2월	 7일	 목
CCNode:
                 Transformation
                 - (CGAffineTransform)nodeToParentTransform;

                 - (CGAffineTransform)parentToNodeTransform;

                 - (CGAffineTransform)nodeToWorldTransform;

                 - (CGAffineTransform)worldToNodeTransform;

                 - (CGPoint)convertToNodeSpace:(CGPoint)worldPoint;

                 - (CGPoint)convertToWorldSpace:(CGPoint)nodePoint;




13년	 2월	 7일	 목
CCNode: Actions
                 • Modify node’s attributes by time
                 • position/rotation/scale/opacity/grid
                 • Interval actions and Instant actions




13년	 2월	 7일	 목
Scene Graph 구조

                 • 하나의 Scene이나 Layer에 객체들을 자식으로
                  추가(addChild)하여 이 객체들이 상호작용하
                  도록 프로그래밍함

                 • 객체들은 계층적으로 추가되거나 삭제될 수
                  있다

                 • 모든 객체들은 visible 속성을 가진다

13년	 2월	 7일	 목
Scene Graph
                                        CCScene


                      CCLayer              CCLayer   CCLayer


         CCSprite   CCMenu   CCSprite




13년	 2월	 7일	 목
Scene Graph 구조
                 •   벡터기반 그래픽스 시스템
                     에서 일반적으로 사용

                 •   Acrobat 3D, Java 3D,
                     AutoCAD,VRML, Open
                     Inventor등에서 사용

                 •   트리형태의 노드를 이용하
                     여 장면을 구성




13년	 2월	 7일	 목
CCNode 클래스
                 • Cocos2D의 가장 중요한 클래스
                 • CCScene, CCLayer, CCSprite, CCMenu가
                   가장 자주 사용되는 Cocos2D 클래스이며 이
                   들은 모두 CCNode의 자식이다

                 • CCNode를 포함할 수 있다. schedule 메소드
                   를 주기적으로 callback할 수 있다

                 • 액션을 수행할 수 있다
13년	 2월	 7일	 목
CCNode 클래스
                 • 속성값
                  • rotation, scaleX_, scaleY_,position,
                     visible_, anchorPointInPixels_,
                     anchorPoint_, isRelativeAnchorPoint_,
                     contentSize_, transform_, inverse_,
                     vertexZ_, camera_, grid, zOrder_,
                     children_


13년	 2월	 7일	 목
CCNode 클래스

                 • 속성값
                  • tag_, userData, isRunning_,
                     isTransformDirty_, isInverseDirty_,
                     isTransformGLDirty_, ...




13년	 2월	 7일	 목
주요속성

                 • 위치, 스케일(x,y),회전(degree,시계방
                  향),CCCamera(gluLookAt 함수의
                  interface), 앵커포인트, 크기, visible, z-order,
                  OpenGL의 z 위치

                 • tag 속성
                  • Scene Graph내의 노드를 구분하는 정수 값

13년	 2월	 7일	 목
CCArray
                 • Scene Graph의 객체를 편리하게 다루기 위한
                   NSArray 클래스의 대용 클래스

                 • NSFastEnumeration, NSCoding 프로토콜을
                   준수

                 • count, capacity, indexOfObject, addObject,
                   insertObject, removeObject,
                   removeAllObjects등의 메소드를 가짐


13년	 2월	 7일	 목
addChild in CCNode
                 -(id) addChild: (CCNode*) child z:(int)z tag:(int) aTag

                 {!
                 !    ...
                 !    if( ! children_ )
                 !    ! [self childrenAlloc];
                 !
                 !    [self insertChild:child z:z];
                 !
                 !    child.tag = aTag;
                 !
                 !    [child setParent: self];
                 !
                 !    if( isRunning_ )
                 !    ! [child onEnter];
                 !    return self;
                 }



                 • Node객체에 하위 객체를 추가함
13년	 2월	 7일	 목
removeChild
                 -(void) removeChild: (CCNode*)child cleanup:(BOOL)cleanup
                 {
                 !   if (child == nil)
                 !   ! return;
                 !
                 !   if ( [children_ containsObject:child] )
                 !   ! [self detachChild:child cleanup:cleanup];
                 }


                 •   Node객체의 하위 객체를 Scene Graph 구조에서 제
                     거함

                 •   NSMutableArray *children_; 이라는 속
                     성값이 CCNode에 있으며 children_ 배열에
                     CCNode 객체를 추가하거나 제거하는 것이
                     addChild, removeChild가 하는 일이다.

13년	 2월	 7일	 목
CCNode Scene관리
                                SceneGraph 트리내의 자식 객체를 traverse하여
                                             액션을 수행
     -(void) onEnter

     {
     !      [children_ makeObjectsPerformSelector:@selector(onEnter)];
     !
     !      [self resumeSchedulerAndActions];
     !
     !      isRunning_ = YES;
     }

     -(void) onEnterTransitionDidFinish
     {
     !   [children_
     makeObjectsPerformSelector:@selector(onEnterTransitionDidFinish)];
     }




13년	 2월	 7일	 목
CCNode의 액션수행




                  runAction 메소드가 액션 객체에서 지정
                  된 시간간격(duration)에 주어진 액션을
                               수행


13년	 2월	 7일	 목
OpenGL
                      Transformation
                 • OpenGL은 Graphics Pipeline을 제공
                 • 변환행렬(Current Transform:CT) 사용




13년	 2월	 7일	 목
Transform wrapping
                 void initCT() // initialize the CT (model view matrix)
                 {
                    glMatrixMode(GL_MODELVIEW); // informs OpenGL which matrix we are altering
                    glLoadIdentity(); // set CT to the identity matrix
                 }
                 void rotate2D(double angle)
                 {
                    glMatrixMode(GL_MODELVIEW);
                    glRotated(angle, 0.0, 0.0, 1.0); // set CT to CT * (2D rotation)
                 }
                 void translate2D(double dx, double dy)
                 {
                    glMatrixMode(GL_MODELVIEW);
                    glTranslated(dx, dy, 0.0); // set CT to CT * (2D translation)
                 }
                 void scale2D(double sx, double sy)
                 {
                    glMatrixMode(GL_MODELVIEW);
                    glScaled(sx, sy, 1.0); // set CT to CT * (2D scaling)
                 }

                 gl 변환함수를 간단한 함수로 포장하여 사용한다
13년	 2월	 7일	 목
CGAffineTransform
                                 CT를 항등행렬로 초기화




                          Translation, Rotation, Scale 행렬을 곱하여
                                      변환행렬을 만든다


13년	 2월	 7일	 목
CCNode Scene관리

                 -(void) onExit
                 {
                 !   [self pauseSchedulerAndActions];
                 !
                 !   isRunning_ = NO;!
                 !
                 !   [children_ makeObjectsPerformSelector:@selector(onExit)];
                 }




13년	 2월	 7일	 목
CCDirector 살펴보기
                 • 픽셀 포맷 지정
                 • Depth Buffer 포맷
                 • OpenGL Projection방법
                 • Device Orientation
                 • EAGLView 위에 객체를 표현(EAGLView 는
                  UIView 클래스의 하위 클래스)


13년	 2월	 7일	 목
CCDirector
                 •   유용한 메소드

                     •   convertToGL

                         •   UIKit 좌표를
                             OpenGL좌표로 변
                             환하는 기능을 한다




13년	 2월	 7일	 목
CCDirector
                 •   유용한 메소드

                     •   convertToGL

                         •   UIKit 좌표를
                             OpenGL좌표로 변
                             환하는 기능을 한다




13년	 2월	 7일	 목
CCDirector
                 •   유용한 메소드

                     •   convertToGL

                         •   UIKit 좌표를
                             OpenGL좌표로 변
                             환하는 기능을 한다




                                             •   OpenGL 좌표


13년	 2월	 7일	 목
CCDirector
                 •   유용한 메소드

                     •   convertToGL

                         •   UIKit 좌표를
                             OpenGL좌표로 변
                             환하는 기능을 한다




                                             •   OpenGL 좌표


13년	 2월	 7일	 목
CCDirector
                 •   유용한 메소드

                     •   convertToGL

                         •   UIKit 좌표를
                             OpenGL좌표로 변
                             환하는 기능을 한다
                                           •   UIKit 좌표



                                                          •   OpenGL 좌표


13년	 2월	 7일	 목
CCDirector
                 • -(void) pushScene:(CCScene*)scene
                  • 수행중인 Scene을 중지시키고 scene을
                    push한다

                 • -(void)popScene
                 • -(void)runWithScene:(CCScene*)scene
                  • Director의 메인루프에 주어진 Scene을 넣
                    는다

13년	 2월	 7일	 목
CCDirector
                 • runWithScene으로   Scene을 렌더링




13년	 2월	 7일	 목
runWithScene
                 • runWithScene이 하는 일




13년	 2월	 7일	 목
runWithScene
                 • runWithScene이 하는 일




13년	 2월	 7일	 목
runWithScene
                 • runWithScene이 하는 일




13년	 2월	 7일	 목
runWithScene
                 • runWithScene이 하는 일

                                    디폴트 디렉터는 CCTimerDirector임




13년	 2월	 7일	 목
runWithScene
                 • runWithScene이 하는 일

                                    디폴트 디렉터는 CCTimerDirector임




13년	 2월	 7일	 목
runWithScene
                 • runWithScene이 하는 일

                                    디폴트 디렉터는 CCTimerDirector임




                                    역시 NSTimer를 통해 특정 루프를 호출

13년	 2월	 7일	 목
runWithScene
                 • runWithScene이 하는 일

                                    디폴트 디렉터는 CCTimerDirector임




                                    역시 NSTimer를 통해 특정 루프를 호출

13년	 2월	 7일	 목
CCScene
                 • CCScene은 anchor point를 화면의 중심으로
                  둔다

                 • 모든 노드의 부모 노드 역할




13년	 2월	 7일	 목
CCLayer

                 •   UIAccelerometerDelegate, CCStandardTouchDelegate,
                     CCTargetedTouchDelegate 프로토콜을 구현

                     •   터치 이벤트를 처리하는 방식으로 Targeted Touch Delegate는
                         1)싱글 터치만을 처리하는 메소드를 제공함, 2) ccTouchBegan
                         메소드가 필수 메소드임(부울형 YES/NO를 반환함)

                     •   CCStandardTouchDelegate는 멀티터치를 지원함




13년	 2월	 7일	 목
CCLayer

                 • CCLayer는 Accelerometer, Touch를 처리하
                   는 메소드를 가진다

                 • 레이어의 색상이나 크기를 지정할 수 있는 메
                   소드를 가진다

                 • draw 메소드를 통하여 Blending이나 texture
                   를 표현할 수 있다



13년	 2월	 7일	 목
CCMenu

                 • CCLayer의 자식 클래스(Touch를 받아야 하
                  므로)

                 • MenuItem을 추가하는 기능(CCMenuItem 클
                  래스의 객체들만 자식으로 추가할 수 있다)

                 • 수직, 수평 정렬기능

13년	 2월	 7일	 목
CCMenuItem
                 • CCNode의 자식 클래스
                 • CCMenuItemImage, CCMenuItemFont,
                   CCMenuItemAtlasFont,
                   CCMenuItemLabel, CCMenuItemSprite등의
                   하위클래스를 가짐

                 • NSInvocation 객체를 통해 메뉴선택시 메소
                   드를 invoke시킴


13년	 2월	 7일	 목
CCAction
                 • originalTarget(id형), target (id형), tag(int 형)
                   속성을 가짐

                 • NSObject의 자식 클래스-하위 노드를 가질
                   수 있음

                 • CCAction의 하위클래스
                  • CCIntervalAction, CCFiniteTimeAction,
                     CCSpeed, CCRepeatForever, CCFollow


13년	 2월	 7일	 목
CCMoveTo




13년	 2월	 7일	 목
CCMoveTo




13년	 2월	 7일	 목
CCMoveTo


                   ...




13년	 2월	 7일	 목
CCMoveTo


                   ...




13년	 2월	 7일	 목
기타


                 • 스프라이트, 타일맵, 그리드, 텍스쳐...
                 • 매우 많은 클래스들이 있으며 이들 모두 잘 설
                  계된 클래스들이다




13년	 2월	 7일	 목
예제



                 Texture




                     Bird on a wire- YR Lee, Peter Yun(TU)
                     https://itunes.apple.com/kr/app/jeonseon-wiui-chamsae/id474403193?mt=8



13년	 2월	 7일	 목
결론




13년	 2월	 7일	 목
결론

                 • 게임을 만드는 것은 퍼즐 놀이와 같은 지적 유
                  희이다




13년	 2월	 7일	 목
결론

                 • 게임을 만드는 것은 퍼즐 놀이와 같은 지적 유
                  희이다

                 • 창조하는 것은 매우 즐거운 과정이다.



13년	 2월	 7일	 목
결론

                 • 게임을 만드는 것은 퍼즐 놀이와 같은 지적 유
                  희이다

                 • 창조하는 것은 매우 즐거운 과정이다.
                 • 소프트웨어 마켓의 패러다임이 바뀌고 있다.
                  • 오픈마켓의 등장과 활성화

13년	 2월	 7일	 목
결론




13년	 2월	 7일	 목
결론

                 • cocos2d와 같은 강력하고 사용하기 편리한 라
                  이브러리들이 있다




13년	 2월	 7일	 목
결론

                 • cocos2d와 같은 강력하고 사용하기 편리한 라
                  이브러리들이 있다

                 • 기초적인 프로그래밍 실력이 있다면 누구나
                  오픈마켓이 게임을 만들어 올릴 수 있다




13년	 2월	 7일	 목
결론

                 • cocos2d와 같은 강력하고 사용하기 편리한 라
                  이브러리들이 있다

                 • 기초적인 프로그래밍 실력이 있다면 누구나
                  오픈마켓이 게임을 만들어 올릴 수 있다

                 • 그 기초는 매우 매우 중요하다

13년	 2월	 7일	 목
기타


                 • 트위터:   @dongupak




13년	 2월	 7일	 목
Q &A



13년	 2월	 7일	 목

More Related Content

What's hot

동국대 앱창작터 5일차:Cocos2d-X 확장기능
동국대 앱창작터 5일차:Cocos2d-X 확장기능동국대 앱창작터 5일차:Cocos2d-X 확장기능
동국대 앱창작터 5일차:Cocos2d-X 확장기능Changhwan Yi
 
Cocos2dx와 c++11를 이용한 게임 개발
Cocos2dx와 c++11를 이용한 게임 개발Cocos2dx와 c++11를 이용한 게임 개발
Cocos2dx와 c++11를 이용한 게임 개발권 태혁
 
동국대 앱창작터 2일차:Cocos2d-X 기본기능
동국대 앱창작터 2일차:Cocos2d-X 기본기능동국대 앱창작터 2일차:Cocos2d-X 기본기능
동국대 앱창작터 2일차:Cocos2d-X 기본기능Changhwan Yi
 
게임개발 Cocos2d-x : 소프트웨어씽킹연구소
게임개발 Cocos2d-x : 소프트웨어씽킹연구소게임개발 Cocos2d-x : 소프트웨어씽킹연구소
게임개발 Cocos2d-x : 소프트웨어씽킹연구소SWTHINKING LAB
 
만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장
만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장
만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장ukjinkwoun
 
[150523] live2d 그녀들을 움직이게 하는 기술
[150523] live2d 그녀들을 움직이게 하는 기술[150523] live2d 그녀들을 움직이게 하는 기술
[150523] live2d 그녀들을 움직이게 하는 기술MinGeun Park
 
[141015] cedec 2014 참관기 & 강연 리뷰 #2
[141015] cedec 2014 참관기 & 강연 리뷰 #2[141015] cedec 2014 참관기 & 강연 리뷰 #2
[141015] cedec 2014 참관기 & 강연 리뷰 #2MinGeun Park
 
17. cocos2d 기초
17. cocos2d  기초17. cocos2d  기초
17. cocos2d 기초Sangon Lee
 
[NHN_NEXT] DirectX Tutorial 강의 자료
[NHN_NEXT] DirectX Tutorial 강의 자료[NHN_NEXT] DirectX Tutorial 강의 자료
[NHN_NEXT] DirectX Tutorial 강의 자료MinGeun Park
 
Direct x 11 입문
Direct x 11 입문Direct x 11 입문
Direct x 11 입문Jin Woo Lee
 
유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & Trick유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & TrickMinGeun Park
 
3 d 그래픽 엔진 비교
3 d 그래픽 엔진 비교3 d 그래픽 엔진 비교
3 d 그래픽 엔진 비교yoonhs306
 
SPH 기법을 이용한 2D 물 물리 엔진 개발
SPH 기법을 이용한 2D 물 물리 엔진 개발SPH 기법을 이용한 2D 물 물리 엔진 개발
SPH 기법을 이용한 2D 물 물리 엔진 개발SeongWan Kim
 
20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)Dongho Kim
 
Unity 3d study #2
Unity 3d study #2Unity 3d study #2
Unity 3d study #2Hyunwoo Kim
 
Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Minsu Park
 
브릿지 Unity3D 기초 스터디 1회
브릿지 Unity3D 기초 스터디 1회브릿지 Unity3D 기초 스터디 1회
브릿지 Unity3D 기초 스터디 1회BridgeGames
 
우리 프로젝트에 맞는 게임 엔진 - 테크니컬아트디렉터 김태근
우리 프로젝트에 맞는 게임 엔진 - 테크니컬아트디렉터 김태근우리 프로젝트에 맞는 게임 엔진 - 테크니컬아트디렉터 김태근
우리 프로젝트에 맞는 게임 엔진 - 테크니컬아트디렉터 김태근Visual Tech Dev
 

What's hot (20)

동국대 앱창작터 5일차:Cocos2d-X 확장기능
동국대 앱창작터 5일차:Cocos2d-X 확장기능동국대 앱창작터 5일차:Cocos2d-X 확장기능
동국대 앱창작터 5일차:Cocos2d-X 확장기능
 
Cocos2dx와 c++11를 이용한 게임 개발
Cocos2dx와 c++11를 이용한 게임 개발Cocos2dx와 c++11를 이용한 게임 개발
Cocos2dx와 c++11를 이용한 게임 개발
 
동국대 앱창작터 2일차:Cocos2d-X 기본기능
동국대 앱창작터 2일차:Cocos2d-X 기본기능동국대 앱창작터 2일차:Cocos2d-X 기본기능
동국대 앱창작터 2일차:Cocos2d-X 기본기능
 
게임개발 Cocos2d-x : 소프트웨어씽킹연구소
게임개발 Cocos2d-x : 소프트웨어씽킹연구소게임개발 Cocos2d-x : 소프트웨어씽킹연구소
게임개발 Cocos2d-x : 소프트웨어씽킹연구소
 
만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장
만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장
만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장
 
[150523] live2d 그녀들을 움직이게 하는 기술
[150523] live2d 그녀들을 움직이게 하는 기술[150523] live2d 그녀들을 움직이게 하는 기술
[150523] live2d 그녀들을 움직이게 하는 기술
 
[141015] cedec 2014 참관기 & 강연 리뷰 #2
[141015] cedec 2014 참관기 & 강연 리뷰 #2[141015] cedec 2014 참관기 & 강연 리뷰 #2
[141015] cedec 2014 참관기 & 강연 리뷰 #2
 
17. cocos2d 기초
17. cocos2d  기초17. cocos2d  기초
17. cocos2d 기초
 
[NHN_NEXT] DirectX Tutorial 강의 자료
[NHN_NEXT] DirectX Tutorial 강의 자료[NHN_NEXT] DirectX Tutorial 강의 자료
[NHN_NEXT] DirectX Tutorial 강의 자료
 
Direct x 11 입문
Direct x 11 입문Direct x 11 입문
Direct x 11 입문
 
유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & Trick유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & Trick
 
3 d 그래픽 엔진 비교
3 d 그래픽 엔진 비교3 d 그래픽 엔진 비교
3 d 그래픽 엔진 비교
 
2D games with iOS or Corona
2D games with iOS or Corona2D games with iOS or Corona
2D games with iOS or Corona
 
SPH 기법을 이용한 2D 물 물리 엔진 개발
SPH 기법을 이용한 2D 물 물리 엔진 개발SPH 기법을 이용한 2D 물 물리 엔진 개발
SPH 기법을 이용한 2D 물 물리 엔진 개발
 
20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)
 
Unity 3d study #2
Unity 3d study #2Unity 3d study #2
Unity 3d study #2
 
Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)
 
브릿지 Unity3D 기초 스터디 1회
브릿지 Unity3D 기초 스터디 1회브릿지 Unity3D 기초 스터디 1회
브릿지 Unity3D 기초 스터디 1회
 
우리 프로젝트에 맞는 게임 엔진 - 테크니컬아트디렉터 김태근
우리 프로젝트에 맞는 게임 엔진 - 테크니컬아트디렉터 김태근우리 프로젝트에 맞는 게임 엔진 - 테크니컬아트디렉터 김태근
우리 프로젝트에 맞는 게임 엔진 - 테크니컬아트디렉터 김태근
 
Kinect pc
Kinect   pcKinect   pc
Kinect pc
 

Viewers also liked

QGIS 공식 Training Manual 한국어판
QGIS 공식 Training Manual 한국어판 QGIS 공식 Training Manual 한국어판
QGIS 공식 Training Manual 한국어판 SANGHEE SHIN
 
Build the Virtual Reality Web with A-Frame
Build the Virtual Reality Web with A-FrameBuild the Virtual Reality Web with A-Frame
Build the Virtual Reality Web with A-FrameMozilla VR
 
[Kgc2013] 모바일 엔진 개발기
[Kgc2013] 모바일 엔진 개발기[Kgc2013] 모바일 엔진 개발기
[Kgc2013] 모바일 엔진 개발기changehee lee
 
내 손에 픽셀을 쥐어다오
내 손에 픽셀을 쥐어다오내 손에 픽셀을 쥐어다오
내 손에 픽셀을 쥐어다오KwangSam Kim
 
Bringing Virtual Reality to the Web: VR, WebGL and CSS – Together At Last!
Bringing Virtual Reality to the Web: VR, WebGL and CSS – Together At Last!Bringing Virtual Reality to the Web: VR, WebGL and CSS – Together At Last!
Bringing Virtual Reality to the Web: VR, WebGL and CSS – Together At Last!FITC
 

Viewers also liked (8)

점, 선, 면
점, 선, 면점, 선, 면
점, 선, 면
 
QGIS 공식 Training Manual 한국어판
QGIS 공식 Training Manual 한국어판 QGIS 공식 Training Manual 한국어판
QGIS 공식 Training Manual 한국어판
 
Build the Virtual Reality Web with A-Frame
Build the Virtual Reality Web with A-FrameBuild the Virtual Reality Web with A-Frame
Build the Virtual Reality Web with A-Frame
 
WebVR
WebVRWebVR
WebVR
 
Shader compilation
Shader compilationShader compilation
Shader compilation
 
[Kgc2013] 모바일 엔진 개발기
[Kgc2013] 모바일 엔진 개발기[Kgc2013] 모바일 엔진 개발기
[Kgc2013] 모바일 엔진 개발기
 
내 손에 픽셀을 쥐어다오
내 손에 픽셀을 쥐어다오내 손에 픽셀을 쥐어다오
내 손에 픽셀을 쥐어다오
 
Bringing Virtual Reality to the Web: VR, WebGL and CSS – Together At Last!
Bringing Virtual Reality to the Web: VR, WebGL and CSS – Together At Last!Bringing Virtual Reality to the Web: VR, WebGL and CSS – Together At Last!
Bringing Virtual Reality to the Web: VR, WebGL and CSS – Together At Last!
 

Similar to Cocos2d 기초

ICON 2011 Introduction to OpenGL ES
ICON 2011 Introduction to OpenGL ESICON 2011 Introduction to OpenGL ES
ICON 2011 Introduction to OpenGL ESSeongWan Kim
 
[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발
[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발
[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발MinGeun Park
 
[IGC 2017] 엔지메이킹 이대희 - 이제는 웹에서 게임을 만들 수 있는 환경 'Construct3를 바탕으로'
[IGC 2017] 엔지메이킹 이대희 - 이제는 웹에서 게임을 만들 수 있는 환경 'Construct3를 바탕으로'[IGC 2017] 엔지메이킹 이대희 - 이제는 웹에서 게임을 만들 수 있는 환경 'Construct3를 바탕으로'
[IGC 2017] 엔지메이킹 이대희 - 이제는 웹에서 게임을 만들 수 있는 환경 'Construct3를 바탕으로'강 민우
 
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템강 민우
 
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)MinGeun Park
 
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법YoungSu Son
 
Unity3D Developer Network Study Chapter.2
Unity3D Developer Network Study Chapter.2Unity3D Developer Network Study Chapter.2
Unity3D Developer Network Study Chapter.2Cody Yun
 
Android와 Flutter 앱 개발의 큰 차이점 5가지
Android와 Flutter 앱 개발의 큰 차이점 5가지Android와 Flutter 앱 개발의 큰 차이점 5가지
Android와 Flutter 앱 개발의 큰 차이점 5가지Bansook Nam
 
[박민근] 3 d렌더링 옵티마이징_nv_perfhud
[박민근] 3 d렌더링 옵티마이징_nv_perfhud[박민근] 3 d렌더링 옵티마이징_nv_perfhud
[박민근] 3 d렌더링 옵티마이징_nv_perfhudMinGeun Park
 
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101) 모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101) YoungSu Son
 
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기)
FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기) FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기) YoungSu Son
 
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템Young Soo Kim
 
Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기JP Jung
 
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기Miyu Park
 
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리MinGeun Park
 
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013devCAT Studio, NEXON
 

Similar to Cocos2d 기초 (20)

ICON 2011 Introduction to OpenGL ES
ICON 2011 Introduction to OpenGL ESICON 2011 Introduction to OpenGL ES
ICON 2011 Introduction to OpenGL ES
 
[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발
[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발
[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발
 
[IGC 2017] 엔지메이킹 이대희 - 이제는 웹에서 게임을 만들 수 있는 환경 'Construct3를 바탕으로'
[IGC 2017] 엔지메이킹 이대희 - 이제는 웹에서 게임을 만들 수 있는 환경 'Construct3를 바탕으로'[IGC 2017] 엔지메이킹 이대희 - 이제는 웹에서 게임을 만들 수 있는 환경 'Construct3를 바탕으로'
[IGC 2017] 엔지메이킹 이대희 - 이제는 웹에서 게임을 만들 수 있는 환경 'Construct3를 바탕으로'
 
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
 
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
 
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
 
Unity3D Developer Network Study Chapter.2
Unity3D Developer Network Study Chapter.2Unity3D Developer Network Study Chapter.2
Unity3D Developer Network Study Chapter.2
 
Android와 Flutter 앱 개발의 큰 차이점 5가지
Android와 Flutter 앱 개발의 큰 차이점 5가지Android와 Flutter 앱 개발의 큰 차이점 5가지
Android와 Flutter 앱 개발의 큰 차이점 5가지
 
iOS7 Sprite Kit을 이용한 게임 개발
iOS7 Sprite Kit을 이용한 게임 개발iOS7 Sprite Kit을 이용한 게임 개발
iOS7 Sprite Kit을 이용한 게임 개발
 
[박민근] 3 d렌더링 옵티마이징_nv_perfhud
[박민근] 3 d렌더링 옵티마이징_nv_perfhud[박민근] 3 d렌더링 옵티마이징_nv_perfhud
[박민근] 3 d렌더링 옵티마이징_nv_perfhud
 
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101) 모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
 
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기)
FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기) FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기)
 
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
 
Java term project
Java term projectJava term project
Java term project
 
Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기
 
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
 
Kinect sdk사용하기
Kinect sdk사용하기Kinect sdk사용하기
Kinect sdk사용하기
 
Gametech2015
Gametech2015Gametech2015
Gametech2015
 
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
 
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
 

More from Changwon National University

생성인공지능둘러보기.pdf
생성인공지능둘러보기.pdf생성인공지능둘러보기.pdf
생성인공지능둘러보기.pdfChangwon National University
 
알아두면 편리한 macOS 에디터 단축키와 기능
알아두면 편리한 macOS 에디터  단축키와 기능알아두면 편리한 macOS 에디터  단축키와 기능
알아두면 편리한 macOS 에디터 단축키와 기능Changwon National University
 
키보드 기호의 이름 알아보기(한국어, 영어)
키보드 기호의 이름 알아보기(한국어, 영어)키보드 기호의 이름 알아보기(한국어, 영어)
키보드 기호의 이름 알아보기(한국어, 영어)Changwon National University
 
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)Changwon National University
 
18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리Changwon National University
 
15 2 클래스정의와self
15 2 클래스정의와self15 2 클래스정의와self
15 2 클래스정의와selfChangwon National University
 

More from Changwon National University (20)

생성인공지능둘러보기.pdf
생성인공지능둘러보기.pdf생성인공지능둘러보기.pdf
생성인공지능둘러보기.pdf
 
2011 app center Changwon National Univ.
2011 app center Changwon National Univ.2011 app center Changwon National Univ.
2011 app center Changwon National Univ.
 
인공지능의 파도가 온다
인공지능의 파도가 온다인공지능의 파도가 온다
인공지능의 파도가 온다
 
Mobile Healthcare Application
Mobile Healthcare ApplicationMobile Healthcare Application
Mobile Healthcare Application
 
바다 즐기기
바다 즐기기바다 즐기기
바다 즐기기
 
알아두면 편리한 macOS 에디터 단축키와 기능
알아두면 편리한 macOS 에디터  단축키와 기능알아두면 편리한 macOS 에디터  단축키와 기능
알아두면 편리한 macOS 에디터 단축키와 기능
 
키보드 기호의 이름 알아보기(한국어, 영어)
키보드 기호의 이름 알아보기(한국어, 영어)키보드 기호의 이름 알아보기(한국어, 영어)
키보드 기호의 이름 알아보기(한국어, 영어)
 
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
 
20 2 강의를 마치며
20 2 강의를 마치며20 2 강의를 마치며
20 2 강의를 마치며
 
20 1 코딩스타일
20 1 코딩스타일20 1 코딩스타일
20 1 코딩스타일
 
18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리
 
18 1 파이썬패키지
18 1 파이썬패키지18 1 파이썬패키지
18 1 파이썬패키지
 
17 2 필터함수와 맵함수
17 2 필터함수와 맵함수17 2 필터함수와 맵함수
17 2 필터함수와 맵함수
 
17 1 람다함수
17 1 람다함수17 1 람다함수
17 1 람다함수
 
16 1 상속과super()
16 1 상속과super()16 1 상속과super()
16 1 상속과super()
 
15 2 클래스정의와self
15 2 클래스정의와self15 2 클래스정의와self
15 2 클래스정의와self
 
14 4 슬라이싱
14 4 슬라이싱14 4 슬라이싱
14 4 슬라이싱
 
14 2 iterator
14 2 iterator14 2 iterator
14 2 iterator
 
14 3 리스트함수
14 3 리스트함수14 3 리스트함수
14 3 리스트함수
 
14 1 리스트의 메소드
14 1 리스트의 메소드14 1 리스트의 메소드
14 1 리스트의 메소드
 

Cocos2d 기초

  • 1. Cocos2D 기초 창원대학교 박동규 ( @dongupak ) 2013년 3월 창원대학교 13년 2월 7일 목
  • 2. 발표자 소개 창원대학교 정보통신공학과 교수 박동규 (YES, I’m a developer!!) 13년 2월 7일 목
  • 3. iOS game engines Sparrow cocos2d oolong Galaxy 13년 2월 7일 목
  • 4. iOS game engines Corona Game salad Unity iTorque 13년 2월 7일 목
  • 5. and much more • Unreal Engine : Unreal Development Kit for iOS • https://www.youtube.com/watch? v=J9hAHv-Lhzc • Marmalade, Stonetrip S3D 13년 2월 7일 목
  • 6. cocos2d games Tap Pet Hotel: #1 Free Zombie Farm: #6 Free Tap Zoo: #2 Free iStunt 2: #6 Free 13년 2월 7일 목
  • 7. cocos2d games Air Penguin: #1 Paid ZombieSmash: #1 Paid Fishing Frenzy: #7 Paid Trainyard: #2 Paid 13년 2월 7일 목
  • 8. Cocos2d for Mac App 13년 2월 7일 목
  • 9. Cocos2D • 오픈 소스 2D 프레임워크 • 2D 게임, 데모, 그래픽, 대화식 응용프로그램 • 2008년 9월 0.3.0 발표 • 수백개 이상의 앱이 Cocos2D로 개발되어 앱 스토어에 등록됨 13년 2월 7일 목
  • 10. 특징 • Flow Control • 서로 다른 Scene간의 흐름제어 • Sprite • 손쉽고 빠른 스프라이트 활용 • Action • move, rotate, scale등의 액션 수행 13년 2월 7일 목
  • 11. 특징 • Effect • Wave, twirl, lens등의 다양한 2D 효과 • Tiled Maps, Transition, Menus, Text Rendering • 물리엔진제공 : Chipmunk, Box2d, Particle System 13년 2월 7일 목
  • 12. 특징 • Parallax scrolling • High Score server(Cocos live) • OpenGL ES 1.1 기반 - iOS • OpenGL 1.5 기반 - Mac 13년 2월 7일 목
  • 13. 장점 • 예제코드가 많이 포함되어 있다 • OpenGL ES의 Wrapping이다. • OpenGL에 관한 지식이 있다면 매우 쉽게 배울 수 있다 • 용량이 적은 게임개발이 가능하며 풍부한 API 가 제공된다 13년 2월 7일 목
  • 14. Cocos3D • 2012.11. - cocos3d 0.7.2 • Objective-C 언어로 작성됨 13년 2월 7일 목
  • 15. Cocos3D Features • Seamless integration with cocos2d • pluggable loading framework for 3d models • 3d 모델 선택가능, 터치가능 • 3d 애니메이션 지원 • scene graph 구조를 통한 3d manipulation • ...... http://brenwill.com/cocos3d/ 13년 2월 7일 목
  • 24. 샘플 구동하기 좋은 예제들이 너무나 많습니다. 13년 2월 7일 목
  • 25. Cocos2D구성 풍부한 예제와 소소코드 - 공부하기 좋다. 13년 2월 7일 목
  • 30. Hello world 샘플 13년 2월 7일 목
  • 31. Demo Cocos2D for iPhone, demo 1,2,3 13년 2월 7일 목
  • 33. Cocos2D의 구조 • Cocos2D 클래스들은 CCxxx라는 네임스페 이스를 가진다. • Director(CCDirector) • 싱글턴 객체, 게임의 흐름을 Scene을 통하여 관리 • OpenGL ES 환경 설정 13년 2월 7일 목
  • 34. Cocos2D의 구조 • Scene • 게임의 스크린에 해당함 • 하나의 배경을 구성함 • 여러개의 Scene을 이용하여 게임을 구성 13년 2월 7일 목
  • 35. Cocos2D의 구조 • Layer • Scene에 포함되는 객체 • 사용자의 이벤트를 입력받을 수 있다 • Sprite • 실제로 움직이는 캐릭터나 무기 • 보통은 이미지임 13년 2월 7일 목
  • 38. CCLayer • 터치, 시간, 가속도 이벤트 처리 • isTouchEnabled_ • isAccelerometerEnabled_ • 게임 컨트롤러 • 게임 엔티티의 관리 - CCNode 13년 2월 7일 목
  • 39. CCSprite Texture Texture 13년 2월 7일 목
  • 40. CCSprite Sprites Texture Texture 13년 2월 7일 목
  • 41. Cocos2D의 구조 • Action • Cocos2D 노드의 속성을 시간에 따라 변경 시기는 클래스 • 스프라이트, Scene에 애니메이션을 줄 수 있 다 13년 2월 7일 목
  • 43. CCNode: Coordinate contentSize.width contentSize.height 13년 2월 7일 목
  • 46. CCNode: Coordinate anchorPoint rotation ion sit po 13년 2월 7일 목
  • 49. CCNode: Transformation - (CGAffineTransform)nodeToParentTransform; - (CGAffineTransform)parentToNodeTransform; - (CGAffineTransform)nodeToWorldTransform; - (CGAffineTransform)worldToNodeTransform; - (CGPoint)convertToNodeSpace:(CGPoint)worldPoint; - (CGPoint)convertToWorldSpace:(CGPoint)nodePoint; 13년 2월 7일 목
  • 50. CCNode: Actions • Modify node’s attributes by time • position/rotation/scale/opacity/grid • Interval actions and Instant actions 13년 2월 7일 목
  • 51. Scene Graph 구조 • 하나의 Scene이나 Layer에 객체들을 자식으로 추가(addChild)하여 이 객체들이 상호작용하 도록 프로그래밍함 • 객체들은 계층적으로 추가되거나 삭제될 수 있다 • 모든 객체들은 visible 속성을 가진다 13년 2월 7일 목
  • 52. Scene Graph CCScene CCLayer CCLayer CCLayer CCSprite CCMenu CCSprite 13년 2월 7일 목
  • 53. Scene Graph 구조 • 벡터기반 그래픽스 시스템 에서 일반적으로 사용 • Acrobat 3D, Java 3D, AutoCAD,VRML, Open Inventor등에서 사용 • 트리형태의 노드를 이용하 여 장면을 구성 13년 2월 7일 목
  • 54. CCNode 클래스 • Cocos2D의 가장 중요한 클래스 • CCScene, CCLayer, CCSprite, CCMenu가 가장 자주 사용되는 Cocos2D 클래스이며 이 들은 모두 CCNode의 자식이다 • CCNode를 포함할 수 있다. schedule 메소드 를 주기적으로 callback할 수 있다 • 액션을 수행할 수 있다 13년 2월 7일 목
  • 55. CCNode 클래스 • 속성값 • rotation, scaleX_, scaleY_,position, visible_, anchorPointInPixels_, anchorPoint_, isRelativeAnchorPoint_, contentSize_, transform_, inverse_, vertexZ_, camera_, grid, zOrder_, children_ 13년 2월 7일 목
  • 56. CCNode 클래스 • 속성값 • tag_, userData, isRunning_, isTransformDirty_, isInverseDirty_, isTransformGLDirty_, ... 13년 2월 7일 목
  • 57. 주요속성 • 위치, 스케일(x,y),회전(degree,시계방 향),CCCamera(gluLookAt 함수의 interface), 앵커포인트, 크기, visible, z-order, OpenGL의 z 위치 • tag 속성 • Scene Graph내의 노드를 구분하는 정수 값 13년 2월 7일 목
  • 58. CCArray • Scene Graph의 객체를 편리하게 다루기 위한 NSArray 클래스의 대용 클래스 • NSFastEnumeration, NSCoding 프로토콜을 준수 • count, capacity, indexOfObject, addObject, insertObject, removeObject, removeAllObjects등의 메소드를 가짐 13년 2월 7일 목
  • 59. addChild in CCNode -(id) addChild: (CCNode*) child z:(int)z tag:(int) aTag {! ! ... ! if( ! children_ ) ! ! [self childrenAlloc]; ! ! [self insertChild:child z:z]; ! ! child.tag = aTag; ! ! [child setParent: self]; ! ! if( isRunning_ ) ! ! [child onEnter]; ! return self; } • Node객체에 하위 객체를 추가함 13년 2월 7일 목
  • 60. removeChild -(void) removeChild: (CCNode*)child cleanup:(BOOL)cleanup { ! if (child == nil) ! ! return; ! ! if ( [children_ containsObject:child] ) ! ! [self detachChild:child cleanup:cleanup]; } • Node객체의 하위 객체를 Scene Graph 구조에서 제 거함 • NSMutableArray *children_; 이라는 속 성값이 CCNode에 있으며 children_ 배열에 CCNode 객체를 추가하거나 제거하는 것이 addChild, removeChild가 하는 일이다. 13년 2월 7일 목
  • 61. CCNode Scene관리 SceneGraph 트리내의 자식 객체를 traverse하여 액션을 수행 -(void) onEnter { ! [children_ makeObjectsPerformSelector:@selector(onEnter)]; ! ! [self resumeSchedulerAndActions]; ! ! isRunning_ = YES; } -(void) onEnterTransitionDidFinish { ! [children_ makeObjectsPerformSelector:@selector(onEnterTransitionDidFinish)]; } 13년 2월 7일 목
  • 62. CCNode의 액션수행 runAction 메소드가 액션 객체에서 지정 된 시간간격(duration)에 주어진 액션을 수행 13년 2월 7일 목
  • 63. OpenGL Transformation • OpenGL은 Graphics Pipeline을 제공 • 변환행렬(Current Transform:CT) 사용 13년 2월 7일 목
  • 64. Transform wrapping void initCT() // initialize the CT (model view matrix) { glMatrixMode(GL_MODELVIEW); // informs OpenGL which matrix we are altering glLoadIdentity(); // set CT to the identity matrix } void rotate2D(double angle) { glMatrixMode(GL_MODELVIEW); glRotated(angle, 0.0, 0.0, 1.0); // set CT to CT * (2D rotation) } void translate2D(double dx, double dy) { glMatrixMode(GL_MODELVIEW); glTranslated(dx, dy, 0.0); // set CT to CT * (2D translation) } void scale2D(double sx, double sy) { glMatrixMode(GL_MODELVIEW); glScaled(sx, sy, 1.0); // set CT to CT * (2D scaling) } gl 변환함수를 간단한 함수로 포장하여 사용한다 13년 2월 7일 목
  • 65. CGAffineTransform CT를 항등행렬로 초기화 Translation, Rotation, Scale 행렬을 곱하여 변환행렬을 만든다 13년 2월 7일 목
  • 66. CCNode Scene관리 -(void) onExit { ! [self pauseSchedulerAndActions]; ! ! isRunning_ = NO;! ! ! [children_ makeObjectsPerformSelector:@selector(onExit)]; } 13년 2월 7일 목
  • 67. CCDirector 살펴보기 • 픽셀 포맷 지정 • Depth Buffer 포맷 • OpenGL Projection방법 • Device Orientation • EAGLView 위에 객체를 표현(EAGLView 는 UIView 클래스의 하위 클래스) 13년 2월 7일 목
  • 68. CCDirector • 유용한 메소드 • convertToGL • UIKit 좌표를 OpenGL좌표로 변 환하는 기능을 한다 13년 2월 7일 목
  • 69. CCDirector • 유용한 메소드 • convertToGL • UIKit 좌표를 OpenGL좌표로 변 환하는 기능을 한다 13년 2월 7일 목
  • 70. CCDirector • 유용한 메소드 • convertToGL • UIKit 좌표를 OpenGL좌표로 변 환하는 기능을 한다 • OpenGL 좌표 13년 2월 7일 목
  • 71. CCDirector • 유용한 메소드 • convertToGL • UIKit 좌표를 OpenGL좌표로 변 환하는 기능을 한다 • OpenGL 좌표 13년 2월 7일 목
  • 72. CCDirector • 유용한 메소드 • convertToGL • UIKit 좌표를 OpenGL좌표로 변 환하는 기능을 한다 • UIKit 좌표 • OpenGL 좌표 13년 2월 7일 목
  • 73. CCDirector • -(void) pushScene:(CCScene*)scene • 수행중인 Scene을 중지시키고 scene을 push한다 • -(void)popScene • -(void)runWithScene:(CCScene*)scene • Director의 메인루프에 주어진 Scene을 넣 는다 13년 2월 7일 목
  • 74. CCDirector • runWithScene으로 Scene을 렌더링 13년 2월 7일 목
  • 75. runWithScene • runWithScene이 하는 일 13년 2월 7일 목
  • 76. runWithScene • runWithScene이 하는 일 13년 2월 7일 목
  • 77. runWithScene • runWithScene이 하는 일 13년 2월 7일 목
  • 78. runWithScene • runWithScene이 하는 일 디폴트 디렉터는 CCTimerDirector임 13년 2월 7일 목
  • 79. runWithScene • runWithScene이 하는 일 디폴트 디렉터는 CCTimerDirector임 13년 2월 7일 목
  • 80. runWithScene • runWithScene이 하는 일 디폴트 디렉터는 CCTimerDirector임 역시 NSTimer를 통해 특정 루프를 호출 13년 2월 7일 목
  • 81. runWithScene • runWithScene이 하는 일 디폴트 디렉터는 CCTimerDirector임 역시 NSTimer를 통해 특정 루프를 호출 13년 2월 7일 목
  • 82. CCScene • CCScene은 anchor point를 화면의 중심으로 둔다 • 모든 노드의 부모 노드 역할 13년 2월 7일 목
  • 83. CCLayer • UIAccelerometerDelegate, CCStandardTouchDelegate, CCTargetedTouchDelegate 프로토콜을 구현 • 터치 이벤트를 처리하는 방식으로 Targeted Touch Delegate는 1)싱글 터치만을 처리하는 메소드를 제공함, 2) ccTouchBegan 메소드가 필수 메소드임(부울형 YES/NO를 반환함) • CCStandardTouchDelegate는 멀티터치를 지원함 13년 2월 7일 목
  • 84. CCLayer • CCLayer는 Accelerometer, Touch를 처리하 는 메소드를 가진다 • 레이어의 색상이나 크기를 지정할 수 있는 메 소드를 가진다 • draw 메소드를 통하여 Blending이나 texture 를 표현할 수 있다 13년 2월 7일 목
  • 85. CCMenu • CCLayer의 자식 클래스(Touch를 받아야 하 므로) • MenuItem을 추가하는 기능(CCMenuItem 클 래스의 객체들만 자식으로 추가할 수 있다) • 수직, 수평 정렬기능 13년 2월 7일 목
  • 86. CCMenuItem • CCNode의 자식 클래스 • CCMenuItemImage, CCMenuItemFont, CCMenuItemAtlasFont, CCMenuItemLabel, CCMenuItemSprite등의 하위클래스를 가짐 • NSInvocation 객체를 통해 메뉴선택시 메소 드를 invoke시킴 13년 2월 7일 목
  • 87. CCAction • originalTarget(id형), target (id형), tag(int 형) 속성을 가짐 • NSObject의 자식 클래스-하위 노드를 가질 수 있음 • CCAction의 하위클래스 • CCIntervalAction, CCFiniteTimeAction, CCSpeed, CCRepeatForever, CCFollow 13년 2월 7일 목
  • 90. CCMoveTo ... 13년 2월 7일 목
  • 91. CCMoveTo ... 13년 2월 7일 목
  • 92. 기타 • 스프라이트, 타일맵, 그리드, 텍스쳐... • 매우 많은 클래스들이 있으며 이들 모두 잘 설 계된 클래스들이다 13년 2월 7일 목
  • 93. 예제 Texture Bird on a wire- YR Lee, Peter Yun(TU) https://itunes.apple.com/kr/app/jeonseon-wiui-chamsae/id474403193?mt=8 13년 2월 7일 목
  • 95. 결론 • 게임을 만드는 것은 퍼즐 놀이와 같은 지적 유 희이다 13년 2월 7일 목
  • 96. 결론 • 게임을 만드는 것은 퍼즐 놀이와 같은 지적 유 희이다 • 창조하는 것은 매우 즐거운 과정이다. 13년 2월 7일 목
  • 97. 결론 • 게임을 만드는 것은 퍼즐 놀이와 같은 지적 유 희이다 • 창조하는 것은 매우 즐거운 과정이다. • 소프트웨어 마켓의 패러다임이 바뀌고 있다. • 오픈마켓의 등장과 활성화 13년 2월 7일 목
  • 99. 결론 • cocos2d와 같은 강력하고 사용하기 편리한 라 이브러리들이 있다 13년 2월 7일 목
  • 100. 결론 • cocos2d와 같은 강력하고 사용하기 편리한 라 이브러리들이 있다 • 기초적인 프로그래밍 실력이 있다면 누구나 오픈마켓이 게임을 만들어 올릴 수 있다 13년 2월 7일 목
  • 101. 결론 • cocos2d와 같은 강력하고 사용하기 편리한 라 이브러리들이 있다 • 기초적인 프로그래밍 실력이 있다면 누구나 오픈마켓이 게임을 만들어 올릴 수 있다 • 그 기초는 매우 매우 중요하다 13년 2월 7일 목
  • 102. 기타 • 트위터: @dongupak 13년 2월 7일 목
  • 103. Q &A 13년 2월 7일 목