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

조인트 종류

by 쁘레레레레레 2020. 1. 21.

1. 마우스 조인트 :: 마우스로 드래그해 이동  ex) 앵그리버드

2. 레볼루트 조인트 :: 선택한 물체를 중심으로 진자운동을 한다. 시계 같다.

3. 웰드 조인트 :: 두 바디를 용접한듯 붙인다.  ex) poly bridge

4. 프리마스틱 조인트 :: 두 바디 사이를 주어진 직선 방향으로만 이동 가능 ex)엘리베이터 , 피스톤운동

5. 디스턴스 조인트 :: 두 바디 사이의 연결에 단단한 철봉을 사용한것 항상 일정하고 변하지 않는다.

.. 라는데  사실 레볼루트 조인트와 뚜렷한 차이점을 모르겠다. 단지 레볼루트 조인트가 진자 운동을 한다는점 하나?

6. 로프 조인트 :: 두 바디 사이를 줄로 이은듯하다.

7. 프릭션 조인트 :: 고무줄로 연결한듯 한다던데... 음....어.... 암튼 이상함 +) 힘,회전력에 의해 늘어남

8. 풀리 조인트 :: 도르레 조인트다. 두 바디 사이의 균형에 따라 움직인다.

pulleyJointDef.Initialize(pBody1,
        pBody2,
        b2Vec2(200 / PTM_RATIO, 300 / PTM_RATIO),  // 왼쪽 바디의 x,y위치 값
        b2Vec2(300 / PTM_RATIO, 300 / PTM_RATIO),  // 오른쪽 바디의 x,y 위치값
        pBody1->GetPosition(),
        pBody2->GetPosition(),
        1);
    //약 160 ~ 200 이라  중력의 영향으로 아래로 떨어졌다.
    pulleyJointDef.lengthA = 160 / PTM_RATIO;  // 왼쪽 바디의 길이 값
    pulleyJointDef.lengthB = 160 / PTM_RATIO;  // 오른쪽 바디의 길이 값
    pulleyJointDef.collideConnected = true;

 

length같은 경우 현재 PTM_RATIO가 32인데

A와 B 둘 다 5의 값을 가지고 있다.

둘다 1의 값을 가지고 있게 수정해 보니 그만큼 짧아졌고,

한쪽은 9, 한쪽은 1의 값을 가지고 있게 수정해 보니, 둘다 5의 값을 준것과 같아졌다.

왼쪽은 9:1 오른쪽은 5:5의 값이다.

9. 기어 조인트 :: 톱니바퀴가 서로 연결되어 있는것처럼 동작한다. 두 바디의 크기가 같을 필요는 없지만 bodyDef의 userdata에 넣을 스프라이트를 생각해서 상식적으로 맞춰줄 필요는 있다.

정적바디 하나에 바디1과 2를 연결시켜주었고, 바디1만 자동 회전이 되도록 해주었다.

 

 

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

physics editor & sprite sheet  (0) 2020.01.31
물리에 관하여  (0) 2020.01.31
바디의 종류  (0) 2020.01.20
Box2D EdgeShape에 관한 내용  (0) 2020.01.20
Visual Studio 2019 경고문구 무시하기  (0) 2020.01.17