프로그래밍/Cocos2d-x
물리엔진 Box2D
standwally
2013. 12. 6. 10:53
Tiny Wings, 앵그리 버드 등이 물리엔진을 적용한 대표적인 2D 게임이다.
새가 가속도에 따라 날아가는 높이와 거리가 다르게 표현되고, 그리고 점점 지면으로 떨어지는 중력의 표현,
또한 새가 물체와 부딪치고, 물체가 넘어지고하는 이 모든 것이 물리엔진과 관계가 깊다.
Cocos2d-x에 라이브러리에 내장된 대표적인 물리엔진에는 2가지가 있으며 따로 설치할 필요가 없고 프로젝트 생성시에 사용하겠다는 체크만 해주면 된다.
- Box2D
- Chipmunk
이중에서 Box2D는 C++언어 기반의 오픈소스이며, 앵그리 버드의 기반이 된 엔진이기도 하다.
Box2D의 기본 개념
- World
- 물리 객체들이 포함되고, 물리적인 현상들이 발생하는 공간
- 기본적으로 최소 하나의 월드를 생성하고 유지한다. 여러개의 월드를 생성할 수 는 있으나 권장하지도 않고, 비정상적인 공간이 됨.
- 월드에는 중력이 존재함.
- Shape
- 원, 다각형과 같은 이차원 객체
- 원, 다각형과 같은 이차원 객체
- Body
- 외력을 가해도 형태가 변형되거나 부서지지 않는 강체.
- 외력을 가해도 형태가 변형되거나 부서지지 않는 강체.
- Fixture
- 밀도, 마찰력, 반발력과 같은 요소들과 함께 Body에 Shape을 연결하여 만들어진 형체
- 밀도, 마찰력, 반발력과 같은 요소들과 함께 Body에 Shape을 연결하여 만들어진 형체
- 그 외 Joint, Joint Motor 등이 있음.
그리고 Box2D는 픽셀 단위를 사용하지 않고 미터, 킬로미터, 초 등과 같은 실제 현실의 단위를 사용한다.