본문 바로가기
# 게임/# cocos2d-x

Box2D EdgeShape에 관한 내용

by 쁘레레레레레 2020. 1. 20.
  • cocos2d-x 공부하는 학생의 글입니다.
  • 개인적인 의견이므로 참고를 하는 수단으로 이용바랍니다.
  • 더 좋은 팁을 적어주시면 공부하는데 더 큰 도움이 될것 같습니다.  :D

ლ(╹◡╹ლ)


이 내용은 일부분만 기술한 것이므로 기본적인 함수구현은 다른 Box2D함수 구현을 보기 바랍니다.

 

b2EdgeShape groundEdge;
b2BodyDef groundBodyDef;
b2FixtureDef boxShapeDef;
b2Body* pGroundBody = _world->createBody(&groundBodyDef);

groundEdge.Set(점1,점2);
groundBody->createFixture(&boxShapeDef);

b2EdgeShape클래스의 Set함수는 두 값을 점으로 찍어 선으로 만드는 함수이다.
간단하게 Set(값1,값2); 다음과 같이 설정시, 값1 --------------- 값2로 점을찍어 그 점 사이를 이어서
선을 만드는건데 주로 바닥,벽을 만들때 사용한다.

groundEdge.Set(b2Vec2( 값1 , 값2 ) , b2Vec2( 값3 , 값4 ));
-> 이와 같이 사용시,
예로들어, 값1,2에 각각 b2Vec2(1.0f,5.0f)
값3,4에 각각 b2Vec2(15,0)
이 있다고 쳤을때

cocos2d-x 좌표계 기준 0,0은 좌측 하단이기에
Set함수의 첫번째 값은 (1,5), 두번째 값은(15,0)이다.
그래서 실제로 함수를 구현해 물체를 떨궈주면  바닥이 내리막길처럼 구현된다.

Set의 값1과 값2를 점으로 찍어 잇는다고 생각하면 편하다.


그리고 이를 이용해 절벽도 가능하다.
groundEdge.Set(b2Vec2(5.0f,0.0f), b2Vec2(15, 0));
이 경우 물체를 15,0인 지점 즉, 화면 오른쪽 끝에서 지속적으로 떨구어 주면  미리 설정해둔 값에 의해서 밀려서 왼쪽에서 밑바닥으로 떨어진다.

 

같은 방식으로 절벽도 가능하다.

 

'# 게임 > # cocos2d-x' 카테고리의 다른 글

physics editor & sprite sheet  (0) 2020.01.31
물리에 관하여  (0) 2020.01.31
조인트 종류  (0) 2020.01.21
바디의 종류  (0) 2020.01.20
Visual Studio 2019 경고문구 무시하기  (0) 2020.01.17