ݺߣ

ݺߣShare 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()을 걸어주면 해결된다.
뭐가 더 필요할까 
• 뭘 더 원하니
Ad

Recommended

Cocos2d x a to z (상)
Cocos2d x a to z (상)
SeungIl Choi
Cocos2d x v3.0 무엇이 달라졌나? (20140426)
Cocos2d x v3.0 무엇이 달라졌나? (20140426)
SeongWan Kim
[NDC2014] 친구들아 도와줘 - 다양한 툴을 이용해서 Cocos2d-x 생산성 높이기 (함동기)
[NDC2014] 친구들아 도와줘 - 다양한 툴을 이용해서 Cocos2d-x 생산성 높이기 (함동기)
Donggi Hahm
Cocos2dx와 c++11를 이용한 게임 개발
Cocos2dx와 c++11를 이용한 게임 개발
권 태혁
[NDC2014] 직접 만들어서 즐겨보자 - Cocos2d-x3.0으로 한 시간만에 횡스크롤 슈팅게임 만들기 (함동기)
[NDC2014] 직접 만들어서 즐겨보자 - Cocos2d-x3.0으로 한 시간만에 횡스크롤 슈팅게임 만들기 (함동기)
Donggi Hahm
2016.02.20 어쩌다보니 cocos2d x 사용하게 된 이야기 업로드용
2016.02.20 어쩌다보니 cocos2d x 사용하게 된 이야기 업로드용
은아 정
게임개발 Cocos2d-x : 소프트웨어씽킹연구소
게임개발 Cocos2d-x : 소프트웨어씽킹연구소
SWTHINKING LAB
Cocos2d 기초
Cocos2d 기초
Changwon National University
동국대 앱창작터 4일차:Cocos2d-X 고급기능
동국대 앱창작터 4일차:Cocos2d-X 고급기능
Changhwan Yi
동국대 앱창작터 1일차:Cocos2d-X 소개, 환경설정, 주요개념
동국대 앱창작터 1일차:Cocos2d-X 소개, 환경설정, 주요개념
Changhwan Yi
만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장
만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장
ukjinkwoun
동국대 앱창작터 5일차:Cocos2d-X 확장기능
동국대 앱창작터 5일차:Cocos2d-X 확장기능
Changhwan Yi
동국대 앱창작터 2일차:Cocos2d-X 기본기능
동국대 앱창작터 2일차:Cocos2d-X 기본기능
Changhwan Yi
[NHN_NEXT] DirectX Tutorial 강의 자료
[NHN_NEXT] DirectX Tutorial 강의 자료
MinGeun Park
Direct x 11 입문
Direct x 11 입문
Jin Woo Lee
2D games with iOS or Corona
2D games with iOS or Corona
EungShik (Henry) Kim
[150523] live2d 그녀들을 움직이게 하는 기술
[150523] live2d 그녀들을 움직이게 하는 기술
MinGeun Park
Ccx03.cocos builder
Ccx03.cocos builder
우진 이
17. cocos2d 기초
17. cocos2d 기초
Sangon Lee
Compute shader DX11
Compute shader DX11
민웅 이
NVIDIA GPU CLOUD로 시작하는 딥러닝 환경설정
NVIDIA GPU CLOUD로 시작하는 딥러닝 환경설정
JinYeong Wang
20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)
Dongho Kim
Cocos2d x
Cocos2d x
sketchout
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.2
YEONG-CHEON YOU
Compute shader
Compute shader
QooJuice
06_게임엔진 활용팁
06_게임엔진 활용팁
noerror
devon2013_cocostudio
devon2013_cocostudio
JuHong Jeong

More Related Content

What's hot (20)

동국대 앱창작터 4일차:Cocos2d-X 고급기능
동국대 앱창작터 4일차:Cocos2d-X 고급기능
Changhwan Yi
동국대 앱창작터 1일차:Cocos2d-X 소개, 환경설정, 주요개념
동국대 앱창작터 1일차:Cocos2d-X 소개, 환경설정, 주요개념
Changhwan Yi
만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장
만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장
ukjinkwoun
동국대 앱창작터 5일차:Cocos2d-X 확장기능
동국대 앱창작터 5일차:Cocos2d-X 확장기능
Changhwan Yi
동국대 앱창작터 2일차:Cocos2d-X 기본기능
동국대 앱창작터 2일차:Cocos2d-X 기본기능
Changhwan Yi
[NHN_NEXT] DirectX Tutorial 강의 자료
[NHN_NEXT] DirectX Tutorial 강의 자료
MinGeun Park
Direct x 11 입문
Direct x 11 입문
Jin Woo Lee
2D games with iOS or Corona
2D games with iOS or Corona
EungShik (Henry) Kim
[150523] live2d 그녀들을 움직이게 하는 기술
[150523] live2d 그녀들을 움직이게 하는 기술
MinGeun Park
Ccx03.cocos builder
Ccx03.cocos builder
우진 이
17. cocos2d 기초
17. cocos2d 기초
Sangon Lee
Compute shader DX11
Compute shader DX11
민웅 이
NVIDIA GPU CLOUD로 시작하는 딥러닝 환경설정
NVIDIA GPU CLOUD로 시작하는 딥러닝 환경설정
JinYeong Wang
20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)
Dongho Kim
Cocos2d x
Cocos2d x
sketchout
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.2
YEONG-CHEON YOU
Compute shader
Compute shader
QooJuice
동국대 앱창작터 4일차:Cocos2d-X 고급기능
동국대 앱창작터 4일차:Cocos2d-X 고급기능
Changhwan Yi
동국대 앱창작터 1일차:Cocos2d-X 소개, 환경설정, 주요개념
동국대 앱창작터 1일차:Cocos2d-X 소개, 환경설정, 주요개념
Changhwan Yi
만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장
만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장
ukjinkwoun
동국대 앱창작터 5일차:Cocos2d-X 확장기능
동국대 앱창작터 5일차:Cocos2d-X 확장기능
Changhwan Yi
동국대 앱창작터 2일차:Cocos2d-X 기본기능
동국대 앱창작터 2일차:Cocos2d-X 기본기능
Changhwan Yi
[NHN_NEXT] DirectX Tutorial 강의 자료
[NHN_NEXT] DirectX Tutorial 강의 자료
MinGeun Park
[150523] live2d 그녀들을 움직이게 하는 기술
[150523] live2d 그녀들을 움직이게 하는 기술
MinGeun Park
NVIDIA GPU CLOUD로 시작하는 딥러닝 환경설정
NVIDIA GPU CLOUD로 시작하는 딥러닝 환경설정
JinYeong Wang
20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)
Dongho Kim
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.2
YEONG-CHEON YOU

Viewers also liked (20)

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

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

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

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. 뭐가 더 필요할까 • 뭘 더 원하니