SlideShare una empresa de Scribd logo
1 de 12
week2 
게임엔진 cocos2d-x을 실제 사용하는 부분
cocos2d-x 개발 시작하기 
• Getting Started(http://cocos2d-x. 
org/wiki/Getting_Started_with_Cocos2d-x) 
• 그 외 실제 게임 튜토리얼은 손쉽게 찾아볼수 있다. 
• 키워드는 cocos2d-x ninja game, cocos2d-x tutorial 정도로 찾아보면 
쏟아져나오는 정보의 홍수를 맞이할수 있다.
cocos2d-x 각종 기능들 사용하기 
• Action, BillBoard, Box2d or Chipmunk, Particle, Shader, Scheduler..... 
어느세월에 다 배우나? 
• cocos2d-x 프로젝트를 다운받으면, 내부적으로 cpp-tests라는 
프로젝트에 모든 예제가 구현되어져 있다. 참고하기도 좋게 
만들어져있음. cocos2d-x의 큰 장점 중 하나
cocos2d-x에서 염두해둬야할 기본 개념 
• Position 
• 모든 Child Node는 Parent Node의 상대좌표로 배치된다. 
• Anchor Point를 기준으로 배치된다. 
• Anchor Point 
• 객체 자체의 기준이 되는 포인트다. 
• 객체의 크기에 0~1로 비례한다. 
• Scale (1, 1), Position(0, 0)인 객체의 Anchor Point : case1(0, 0), case2(1, 
1)으로 잡아주고 Scale(2) 했을시 객체의 크기 
• case 1 -> 객체는 Scale(2, 2), Position(0, 0), x(-1), y(-1), width(2), height(2)가 된다. 
• case 2 -> 객체는 Scale(2, 2), Position(0, 0), x(0), y(0), width(2), height(2)가 된다.
cocos2d-x를 조금 더 편리하게 사용하기 
• spine (http://esotericsoftware.com/) 
• 스켈레톤 애니메이션 제작 툴 
• 자체 기능들은 3.x버전부터 cocso2d-x에 내장됨.
cocos2d-x를 조금 더 편리하게 사용하기 
• Tiled (http://www.mapeditor.org/) 
• 타일 맵 툴 
• 타일 맵을 찍고 그것을 tmx로 뽑아준다. 
• cocos2d-x내에서 손쉽게 사용 가능.
cocos2d-x를 조금 더 편리하게 사용하기 
• Physics Editor (https://www.codeandweb.com/physicseditor) 
• box2d와 chipmunk의 충돌 면을 손쉽게 만들어주는 툴
cocos2d-x에서 쉽게 마주할 실수와 해결법 
• 부모 노드와 자식 노드의 Positioning 문제. 
• 두 노드는 서로 다른 차원에 존재하기때문에 상대적인 좌표를 쓴다. 
• A->addChild(B); 의 상황일때, A와 B 각각의 (100, 100)은 다른 위치일 수 
있다는 것이다 (이것 또한 Anchor Point에 따라 사소하게 달라진다) 
• 이럴때 서로를 같은 차원에 놓기 위해서 convertToNodeSpace또는 
convertToWorldSpace 를 사용할 수 있다. 
• ex) A->convertToNodeSpace(B); 를 하면 A의 좌표계에서 B의 위치를 알 
수 있다. 
• 자세한 사항 : http://www.cocos2d-x.org/wiki/Coordinate_System
cocos2d-x에서 쉽게 마주할 실수와 해결법 
• convertToNodeSpace 
• ex) A->convertToNodeSpace(B); 를 하면 A의 좌표계에서 B의 
위치를 알 수 있다. 
• Parent Node - Child Node간의 1차원 정도의 차이를 메꾸는데 
쓸 수 있음. 
• 하지만 Parent Node와 Child Node의 Child Node간의 좌표계를 
맞추는데 에러 발생한다.
cocos2d-x에서 쉽게 마주할 실수와 해결법 
• convertToWorldSpace 
• 위 convertToNodeSpace에서 발생할 문제를 해결할 수 있다. 
• 모든 Node의 Position을 SCREEN! 좌표를 기준으로 변환해 
리턴해준다. 
• 위 함수를 사용하면 Parent Node의 Position이나, Child Node의 
Child Node의 Position이나 동일한 차원에서 비교할 수 있게 된다.
cocos2d-x에서 쉽게 마주할 실수와 해결법 
• 가끔 정상적으로 create 해주었고, 값이 들어간걸 확인했는데 
다음 프레임에 참조해보면 nullptr이 뜨고 작동하지 않는 경우가 
있다. 
• 특정한 상황에서 발생하는 cocos2d-x 자체의 메모리 관리문제가 
대부분이다. 
• Sample scenario - http://cocos2d-x. 
org/wiki/Reference_Count_and_AutoReleasePool_in_Cocos2d-x# 
An-Error-Sample 
• 이럴 경우가 발생하면, 해당 오브젝트를 초기화하고 난 다음 
retain()을 걸어주면 해결된다.
뭐가 더 필요할까 
• 뭘 더 원하니

Más contenido relacionado

La actualidad más candente

동국대 앱창작터 4일차:Cocos2d-X 고급기능
동국대 앱창작터 4일차:Cocos2d-X 고급기능동국대 앱창작터 4일차:Cocos2d-X 고급기능
동국대 앱창작터 4일차:Cocos2d-X 고급기능Changhwan Yi
 
동국대 앱창작터 1일차:Cocos2d-X 소개, 환경설정, 주요개념
동국대 앱창작터 1일차:Cocos2d-X 소개, 환경설정, 주요개념동국대 앱창작터 1일차:Cocos2d-X 소개, 환경설정, 주요개념
동국대 앱창작터 1일차:Cocos2d-X 소개, 환경설정, 주요개념Changhwan Yi
 
만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장
만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장
만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장ukjinkwoun
 
동국대 앱창작터 5일차:Cocos2d-X 확장기능
동국대 앱창작터 5일차:Cocos2d-X 확장기능동국대 앱창작터 5일차:Cocos2d-X 확장기능
동국대 앱창작터 5일차:Cocos2d-X 확장기능Changhwan Yi
 
동국대 앱창작터 2일차:Cocos2d-X 기본기능
동국대 앱창작터 2일차:Cocos2d-X 기본기능동국대 앱창작터 2일차:Cocos2d-X 기본기능
동국대 앱창작터 2일차:Cocos2d-X 기본기능Changhwan Yi
 
[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
 
[150523] live2d 그녀들을 움직이게 하는 기술
[150523] live2d 그녀들을 움직이게 하는 기술[150523] live2d 그녀들을 움직이게 하는 기술
[150523] live2d 그녀들을 움직이게 하는 기술MinGeun Park
 
Ccx03.cocos builder
Ccx03.cocos builderCcx03.cocos builder
Ccx03.cocos builder우진 이
 
17. cocos2d 기초
17. cocos2d  기초17. cocos2d  기초
17. cocos2d 기초Sangon Lee
 
Compute shader DX11
Compute shader DX11Compute shader DX11
Compute shader DX11민웅 이
 
NVIDIA GPU CLOUD로 시작하는 딥러닝 환경설정
NVIDIA GPU CLOUD로 시작하는 딥러닝 환경설정NVIDIA GPU CLOUD로 시작하는 딥러닝 환경설정
NVIDIA GPU CLOUD로 시작하는 딥러닝 환경설정JinYeong Wang
 
20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)Dongho Kim
 
2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)
2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)
2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)khuhacker
 
Tips and experience_of_dx12_engine_development._ver_1.2
Tips and experience_of_dx12_engine_development._ver_1.2Tips and experience_of_dx12_engine_development._ver_1.2
Tips and experience_of_dx12_engine_development._ver_1.2YEONG-CHEON YOU
 
Compute shader
Compute shaderCompute shader
Compute shaderQooJuice
 

La actualidad más candente (20)

동국대 앱창작터 4일차:Cocos2d-X 고급기능
동국대 앱창작터 4일차:Cocos2d-X 고급기능동국대 앱창작터 4일차:Cocos2d-X 고급기능
동국대 앱창작터 4일차:Cocos2d-X 고급기능
 
동국대 앱창작터 1일차:Cocos2d-X 소개, 환경설정, 주요개념
동국대 앱창작터 1일차:Cocos2d-X 소개, 환경설정, 주요개념동국대 앱창작터 1일차:Cocos2d-X 소개, 환경설정, 주요개념
동국대 앱창작터 1일차:Cocos2d-X 소개, 환경설정, 주요개념
 
만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장
만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장
만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장
 
동국대 앱창작터 5일차:Cocos2d-X 확장기능
동국대 앱창작터 5일차:Cocos2d-X 확장기능동국대 앱창작터 5일차:Cocos2d-X 확장기능
동국대 앱창작터 5일차:Cocos2d-X 확장기능
 
동국대 앱창작터 2일차:Cocos2d-X 기본기능
동국대 앱창작터 2일차:Cocos2d-X 기본기능동국대 앱창작터 2일차:Cocos2d-X 기본기능
동국대 앱창작터 2일차:Cocos2d-X 기본기능
 
[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 입문
 
2D games with iOS or Corona
2D games with iOS or Corona2D games with iOS or Corona
2D games with iOS or Corona
 
Coco2d x
Coco2d xCoco2d x
Coco2d x
 
[150523] live2d 그녀들을 움직이게 하는 기술
[150523] live2d 그녀들을 움직이게 하는 기술[150523] live2d 그녀들을 움직이게 하는 기술
[150523] live2d 그녀들을 움직이게 하는 기술
 
Ccx03.cocos builder
Ccx03.cocos builderCcx03.cocos builder
Ccx03.cocos builder
 
17. cocos2d 기초
17. cocos2d  기초17. cocos2d  기초
17. cocos2d 기초
 
Compute shader DX11
Compute shader DX11Compute shader DX11
Compute shader DX11
 
NVIDIA GPU CLOUD로 시작하는 딥러닝 환경설정
NVIDIA GPU CLOUD로 시작하는 딥러닝 환경설정NVIDIA GPU CLOUD로 시작하는 딥러닝 환경설정
NVIDIA GPU CLOUD로 시작하는 딥러닝 환경설정
 
20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)
 
Kinect pc
Kinect   pcKinect   pc
Kinect pc
 
Cocos2d x
Cocos2d xCocos2d x
Cocos2d x
 
2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)
2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)
2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)
 
Tips and experience_of_dx12_engine_development._ver_1.2
Tips and experience_of_dx12_engine_development._ver_1.2Tips and experience_of_dx12_engine_development._ver_1.2
Tips and experience_of_dx12_engine_development._ver_1.2
 
Compute shader
Compute shaderCompute shader
Compute shader
 

Destacado

06_게임엔진 활용팁
06_게임엔진 활용팁06_게임엔진 활용팁
06_게임엔진 활용팁noerror
 
devon2013_cocostudio
devon2013_cocostudiodevon2013_cocostudio
devon2013_cocostudioJuHong Jeong
 
Disruptive Forces (Urbanization)
Disruptive Forces (Urbanization)Disruptive Forces (Urbanization)
Disruptive Forces (Urbanization)Andrew Owiti
 
아이폰앱 개발 프로젝트 Booooly! 사례 분석(1)
아이폰앱 개발 프로젝트 Booooly! 사례 분석(1)아이폰앱 개발 프로젝트 Booooly! 사례 분석(1)
아이폰앱 개발 프로젝트 Booooly! 사례 분석(1)mosaicnet
 
아마존 게임엔진:Lumberyard :: Patel Pratik :: Gaming on AWS 2016
아마존 게임엔진:Lumberyard :: Patel Pratik :: Gaming on AWS 2016아마존 게임엔진:Lumberyard :: Patel Pratik :: Gaming on AWS 2016
아마존 게임엔진:Lumberyard :: Patel Pratik :: Gaming on AWS 2016Amazon Web Services Korea
 
06_게임엔진구성
06_게임엔진구성06_게임엔진구성
06_게임엔진구성noerror
 
16회 오픈업/Unity3d vs cocos2dx_윤경옥테크PM
16회 오픈업/Unity3d vs cocos2dx_윤경옥테크PM16회 오픈업/Unity3d vs cocos2dx_윤경옥테크PM
16회 오픈업/Unity3d vs cocos2dx_윤경옥테크PMVentureSquare
 
16회 오픈업/우리 게임은 어디에 출시할까?_MS오성미부장
16회 오픈업/우리 게임은 어디에 출시할까?_MS오성미부장16회 오픈업/우리 게임은 어디에 출시할까?_MS오성미부장
16회 오픈업/우리 게임은 어디에 출시할까?_MS오성미부장VentureSquare
 
아마존의 관리형 게임 플랫폼 활용하기: GameLift (Deep Dive) :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS ...
아마존의 관리형 게임 플랫폼 활용하기: GameLift (Deep Dive) :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS ...아마존의 관리형 게임 플랫폼 활용하기: GameLift (Deep Dive) :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS ...
아마존의 관리형 게임 플랫폼 활용하기: GameLift (Deep Dive) :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS ...Amazon Web Services Korea
 
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈Amazon Web Services Korea
 
AWS에 대해 가장 궁금했던 열 가지 (정우근) - AWS 웨비나 시리즈
AWS에 대해 가장 궁금했던 열 가지 (정우근) - AWS 웨비나 시리즈AWS에 대해 가장 궁금했던 열 가지 (정우근) - AWS 웨비나 시리즈
AWS에 대해 가장 궁금했던 열 가지 (정우근) - AWS 웨비나 시리즈Amazon Web Services Korea
 
[Gaming on AWS] AWS에서 실시간 멀티플레이 게임 구현하기 - 넥슨
[Gaming on AWS] AWS에서 실시간 멀티플레이 게임 구현하기 - 넥슨[Gaming on AWS] AWS에서 실시간 멀티플레이 게임 구현하기 - 넥슨
[Gaming on AWS] AWS에서 실시간 멀티플레이 게임 구현하기 - 넥슨Amazon Web Services Korea
 
AWS로 사용자 천만명 서비스 만들기 - 윤석찬 (AWS 테크에반젤리스트) :: AWS 웨비나 시리즈 2015
AWS로 사용자 천만명 서비스 만들기 - 윤석찬 (AWS 테크에반젤리스트) :: AWS 웨비나 시리즈 2015AWS로 사용자 천만명 서비스 만들기 - 윤석찬 (AWS 테크에반젤리스트) :: AWS 웨비나 시리즈 2015
AWS로 사용자 천만명 서비스 만들기 - 윤석찬 (AWS 테크에반젤리스트) :: AWS 웨비나 시리즈 2015Amazon Web Services Korea
 
고대특강 게임 프로그래머의 소양
고대특강   게임 프로그래머의 소양고대특강   게임 프로그래머의 소양
고대특강 게임 프로그래머의 소양Jubok Kim
 
[Gaming on AWS] 넥슨 - AWS를 활용한 모바일 게임 서버 개발: 퍼즐 주주의 사례
[Gaming on AWS] 넥슨 - AWS를 활용한 모바일 게임 서버 개발: 퍼즐 주주의 사례[Gaming on AWS] 넥슨 - AWS를 활용한 모바일 게임 서버 개발: 퍼즐 주주의 사례
[Gaming on AWS] 넥슨 - AWS를 활용한 모바일 게임 서버 개발: 퍼즐 주주의 사례Amazon Web Services Korea
 
AWS 비용 최적화 기법 (윤석찬) - AWS 웨비나 시리즈 2015
AWS 비용 최적화 기법 (윤석찬) - AWS 웨비나 시리즈 2015AWS 비용 최적화 기법 (윤석찬) - AWS 웨비나 시리즈 2015
AWS 비용 최적화 기법 (윤석찬) - AWS 웨비나 시리즈 2015Amazon Web Services Korea
 
AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015
AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015
AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015Amazon Web Services Korea
 
모바일 앱(App) 디자인과 모바일 시장변화의 이해
모바일 앱(App) 디자인과 모바일 시장변화의 이해모바일 앱(App) 디자인과 모바일 시장변화의 이해
모바일 앱(App) 디자인과 모바일 시장변화의 이해SeungBeom Ha
 

Destacado (20)

06_게임엔진 활용팁
06_게임엔진 활용팁06_게임엔진 활용팁
06_게임엔진 활용팁
 
devon2013_cocostudio
devon2013_cocostudiodevon2013_cocostudio
devon2013_cocostudio
 
Disruptive Forces (Urbanization)
Disruptive Forces (Urbanization)Disruptive Forces (Urbanization)
Disruptive Forces (Urbanization)
 
Raven
RavenRaven
Raven
 
아이폰앱 개발 프로젝트 Booooly! 사례 분석(1)
아이폰앱 개발 프로젝트 Booooly! 사례 분석(1)아이폰앱 개발 프로젝트 Booooly! 사례 분석(1)
아이폰앱 개발 프로젝트 Booooly! 사례 분석(1)
 
아마존 게임엔진:Lumberyard :: Patel Pratik :: Gaming on AWS 2016
아마존 게임엔진:Lumberyard :: Patel Pratik :: Gaming on AWS 2016아마존 게임엔진:Lumberyard :: Patel Pratik :: Gaming on AWS 2016
아마존 게임엔진:Lumberyard :: Patel Pratik :: Gaming on AWS 2016
 
Wecanmakeengine
WecanmakeengineWecanmakeengine
Wecanmakeengine
 
06_게임엔진구성
06_게임엔진구성06_게임엔진구성
06_게임엔진구성
 
16회 오픈업/Unity3d vs cocos2dx_윤경옥테크PM
16회 오픈업/Unity3d vs cocos2dx_윤경옥테크PM16회 오픈업/Unity3d vs cocos2dx_윤경옥테크PM
16회 오픈업/Unity3d vs cocos2dx_윤경옥테크PM
 
16회 오픈업/우리 게임은 어디에 출시할까?_MS오성미부장
16회 오픈업/우리 게임은 어디에 출시할까?_MS오성미부장16회 오픈업/우리 게임은 어디에 출시할까?_MS오성미부장
16회 오픈업/우리 게임은 어디에 출시할까?_MS오성미부장
 
아마존의 관리형 게임 플랫폼 활용하기: GameLift (Deep Dive) :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS ...
아마존의 관리형 게임 플랫폼 활용하기: GameLift (Deep Dive) :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS ...아마존의 관리형 게임 플랫폼 활용하기: GameLift (Deep Dive) :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS ...
아마존의 관리형 게임 플랫폼 활용하기: GameLift (Deep Dive) :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS ...
 
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈
 
AWS에 대해 가장 궁금했던 열 가지 (정우근) - AWS 웨비나 시리즈
AWS에 대해 가장 궁금했던 열 가지 (정우근) - AWS 웨비나 시리즈AWS에 대해 가장 궁금했던 열 가지 (정우근) - AWS 웨비나 시리즈
AWS에 대해 가장 궁금했던 열 가지 (정우근) - AWS 웨비나 시리즈
 
[Gaming on AWS] AWS에서 실시간 멀티플레이 게임 구현하기 - 넥슨
[Gaming on AWS] AWS에서 실시간 멀티플레이 게임 구현하기 - 넥슨[Gaming on AWS] AWS에서 실시간 멀티플레이 게임 구현하기 - 넥슨
[Gaming on AWS] AWS에서 실시간 멀티플레이 게임 구현하기 - 넥슨
 
AWS로 사용자 천만명 서비스 만들기 - 윤석찬 (AWS 테크에반젤리스트) :: AWS 웨비나 시리즈 2015
AWS로 사용자 천만명 서비스 만들기 - 윤석찬 (AWS 테크에반젤리스트) :: AWS 웨비나 시리즈 2015AWS로 사용자 천만명 서비스 만들기 - 윤석찬 (AWS 테크에반젤리스트) :: AWS 웨비나 시리즈 2015
AWS로 사용자 천만명 서비스 만들기 - 윤석찬 (AWS 테크에반젤리스트) :: AWS 웨비나 시리즈 2015
 
고대특강 게임 프로그래머의 소양
고대특강   게임 프로그래머의 소양고대특강   게임 프로그래머의 소양
고대특강 게임 프로그래머의 소양
 
[Gaming on AWS] 넥슨 - AWS를 활용한 모바일 게임 서버 개발: 퍼즐 주주의 사례
[Gaming on AWS] 넥슨 - AWS를 활용한 모바일 게임 서버 개발: 퍼즐 주주의 사례[Gaming on AWS] 넥슨 - AWS를 활용한 모바일 게임 서버 개발: 퍼즐 주주의 사례
[Gaming on AWS] 넥슨 - AWS를 활용한 모바일 게임 서버 개발: 퍼즐 주주의 사례
 
AWS 비용 최적화 기법 (윤석찬) - AWS 웨비나 시리즈 2015
AWS 비용 최적화 기법 (윤석찬) - AWS 웨비나 시리즈 2015AWS 비용 최적화 기법 (윤석찬) - AWS 웨비나 시리즈 2015
AWS 비용 최적화 기법 (윤석찬) - AWS 웨비나 시리즈 2015
 
AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015
AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015
AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015
 
모바일 앱(App) 디자인과 모바일 시장변화의 이해
모바일 앱(App) 디자인과 모바일 시장변화의 이해모바일 앱(App) 디자인과 모바일 시장변화의 이해
모바일 앱(App) 디자인과 모바일 시장변화의 이해
 

Similar a Cocos2d x a to z (하)

아이폰에 포팅해보기
아이폰에 포팅해보기아이폰에 포팅해보기
아이폰에 포팅해보기changehee lee
 
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안Jeongsang Baek
 
[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담
[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담
[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담Sumin Byeon
 
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기Sumin Byeon
 
Node.js를 사용한 Big Data 사례연구
Node.js를 사용한 Big Data 사례연구Node.js를 사용한 Big Data 사례연구
Node.js를 사용한 Big Data 사례연구ByungJoon Lee
 
Visual Studio를 이용한 어셈블리어 학습 part 1
Visual Studio를 이용한 어셈블리어 학습 part 1Visual Studio를 이용한 어셈블리어 학습 part 1
Visual Studio를 이용한 어셈블리어 학습 part 1YEONG-CHEON YOU
 
CUDA 프로그래밍 기초 MODUCON2018
CUDA 프로그래밍 기초 MODUCON2018CUDA 프로그래밍 기초 MODUCON2018
CUDA 프로그래밍 기초 MODUCON2018Shengzhe Li
 
Mongo db 시작하기
Mongo db 시작하기Mongo db 시작하기
Mongo db 시작하기OnGameServer
 
React native 개발 및 javascript 기본
React native 개발 및 javascript 기본React native 개발 및 javascript 기본
React native 개발 및 javascript 기본Tj .
 

Similar a Cocos2d x a to z (하) (9)

아이폰에 포팅해보기
아이폰에 포팅해보기아이폰에 포팅해보기
아이폰에 포팅해보기
 
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
 
[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담
[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담
[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담
 
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
 
Node.js를 사용한 Big Data 사례연구
Node.js를 사용한 Big Data 사례연구Node.js를 사용한 Big Data 사례연구
Node.js를 사용한 Big Data 사례연구
 
Visual Studio를 이용한 어셈블리어 학습 part 1
Visual Studio를 이용한 어셈블리어 학습 part 1Visual Studio를 이용한 어셈블리어 학습 part 1
Visual Studio를 이용한 어셈블리어 학습 part 1
 
CUDA 프로그래밍 기초 MODUCON2018
CUDA 프로그래밍 기초 MODUCON2018CUDA 프로그래밍 기초 MODUCON2018
CUDA 프로그래밍 기초 MODUCON2018
 
Mongo db 시작하기
Mongo db 시작하기Mongo db 시작하기
Mongo db 시작하기
 
React native 개발 및 javascript 기본
React native 개발 및 javascript 기본React native 개발 및 javascript 기본
React native 개발 및 javascript 기본
 

Cocos2d x a to z (하)

  • 1. week2 게임엔진 cocos2d-x을 실제 사용하는 부분
  • 2. cocos2d-x 개발 시작하기 • Getting Started(http://cocos2d-x. org/wiki/Getting_Started_with_Cocos2d-x) • 그 외 실제 게임 튜토리얼은 손쉽게 찾아볼수 있다. • 키워드는 cocos2d-x ninja game, cocos2d-x tutorial 정도로 찾아보면 쏟아져나오는 정보의 홍수를 맞이할수 있다.
  • 3. cocos2d-x 각종 기능들 사용하기 • Action, BillBoard, Box2d or Chipmunk, Particle, Shader, Scheduler..... 어느세월에 다 배우나? • cocos2d-x 프로젝트를 다운받으면, 내부적으로 cpp-tests라는 프로젝트에 모든 예제가 구현되어져 있다. 참고하기도 좋게 만들어져있음. cocos2d-x의 큰 장점 중 하나
  • 4. cocos2d-x에서 염두해둬야할 기본 개념 • Position • 모든 Child Node는 Parent Node의 상대좌표로 배치된다. • Anchor Point를 기준으로 배치된다. • Anchor Point • 객체 자체의 기준이 되는 포인트다. • 객체의 크기에 0~1로 비례한다. • Scale (1, 1), Position(0, 0)인 객체의 Anchor Point : case1(0, 0), case2(1, 1)으로 잡아주고 Scale(2) 했을시 객체의 크기 • case 1 -> 객체는 Scale(2, 2), Position(0, 0), x(-1), y(-1), width(2), height(2)가 된다. • case 2 -> 객체는 Scale(2, 2), Position(0, 0), x(0), y(0), width(2), height(2)가 된다.
  • 5. cocos2d-x를 조금 더 편리하게 사용하기 • spine (http://esotericsoftware.com/) • 스켈레톤 애니메이션 제작 툴 • 자체 기능들은 3.x버전부터 cocso2d-x에 내장됨.
  • 6. cocos2d-x를 조금 더 편리하게 사용하기 • Tiled (http://www.mapeditor.org/) • 타일 맵 툴 • 타일 맵을 찍고 그것을 tmx로 뽑아준다. • cocos2d-x내에서 손쉽게 사용 가능.
  • 7. cocos2d-x를 조금 더 편리하게 사용하기 • Physics Editor (https://www.codeandweb.com/physicseditor) • box2d와 chipmunk의 충돌 면을 손쉽게 만들어주는 툴
  • 8. cocos2d-x에서 쉽게 마주할 실수와 해결법 • 부모 노드와 자식 노드의 Positioning 문제. • 두 노드는 서로 다른 차원에 존재하기때문에 상대적인 좌표를 쓴다. • A->addChild(B); 의 상황일때, A와 B 각각의 (100, 100)은 다른 위치일 수 있다는 것이다 (이것 또한 Anchor Point에 따라 사소하게 달라진다) • 이럴때 서로를 같은 차원에 놓기 위해서 convertToNodeSpace또는 convertToWorldSpace 를 사용할 수 있다. • ex) A->convertToNodeSpace(B); 를 하면 A의 좌표계에서 B의 위치를 알 수 있다. • 자세한 사항 : http://www.cocos2d-x.org/wiki/Coordinate_System
  • 9. cocos2d-x에서 쉽게 마주할 실수와 해결법 • convertToNodeSpace • ex) A->convertToNodeSpace(B); 를 하면 A의 좌표계에서 B의 위치를 알 수 있다. • Parent Node - Child Node간의 1차원 정도의 차이를 메꾸는데 쓸 수 있음. • 하지만 Parent Node와 Child Node의 Child Node간의 좌표계를 맞추는데 에러 발생한다.
  • 10. cocos2d-x에서 쉽게 마주할 실수와 해결법 • convertToWorldSpace • 위 convertToNodeSpace에서 발생할 문제를 해결할 수 있다. • 모든 Node의 Position을 SCREEN! 좌표를 기준으로 변환해 리턴해준다. • 위 함수를 사용하면 Parent Node의 Position이나, Child Node의 Child Node의 Position이나 동일한 차원에서 비교할 수 있게 된다.
  • 11. cocos2d-x에서 쉽게 마주할 실수와 해결법 • 가끔 정상적으로 create 해주었고, 값이 들어간걸 확인했는데 다음 프레임에 참조해보면 nullptr이 뜨고 작동하지 않는 경우가 있다. • 특정한 상황에서 발생하는 cocos2d-x 자체의 메모리 관리문제가 대부분이다. • Sample scenario - http://cocos2d-x. org/wiki/Reference_Count_and_AutoReleasePool_in_Cocos2d-x# An-Error-Sample • 이럴 경우가 발생하면, 해당 오브젝트를 초기화하고 난 다음 retain()을 걸어주면 해결된다.
  • 12. 뭐가 더 필요할까 • 뭘 더 원하니