SlideShare a Scribd company logo
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()을 걸어주면 해결된다.
뭐가 더 필요할까 
• 뭘 더 원하니

More Related Content

PPTX
Cocos2d x a to z (상)
PPTX
Cocos2d x v3.0 무엇이 달라졌나? (20140426)
PDF
[NDC2014] 친구들아 도와줘 - 다양한 툴을 이용해서 Cocos2d-x 생산성 높이기 (함동기)
PPTX
Cocos2dx와 c++11를 이용한 게임 개발
PDF
[NDC2014] 직접 만들어서 즐겨보자 - Cocos2d-x3.0으로 한 시간만에 횡스크롤 슈팅게임 만들기 (함동기)
PPTX
2016.02.20 어쩌다보니 cocos2d x 사용하게 된 이야기 업로드용
PDF
게임개발 Cocos2d-x : 소프트웨어씽킹연구소
PDF
Cocos2d 기초
Cocos2d x a to z (상)
Cocos2d x v3.0 무엇이 달라졌나? (20140426)
[NDC2014] 친구들아 도와줘 - 다양한 툴을 이용해서 Cocos2d-x 생산성 높이기 (함동기)
Cocos2dx와 c++11를 이용한 게임 개발
[NDC2014] 직접 만들어서 즐겨보자 - Cocos2d-x3.0으로 한 시간만에 횡스크롤 슈팅게임 만들기 (함동기)
2016.02.20 어쩌다보니 cocos2d x 사용하게 된 이야기 업로드용
게임개발 Cocos2d-x : 소프트웨어씽킹연구소
Cocos2d 기초

What's hot (20)

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

Viewers also liked (20)

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

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

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