STDIO
Tìm kiếm gần đây
    Nội dung
    0
    0
    Chia sẻ

    Chipmunk - Phần 4: Constraints (Tiếp Theo)

    Giới thiệu về constraints và các loại constraints còn lại có sẵn trong thư viện Chipmunk.
    23/01/2015 30/09/2020 1 phút đọc
    Chipmunk - Phần 4: Constraints (Tiếp Theo)

    Rotary spring joints

    Giống như Spring Joints, nhưng làm việc với các trục quay. 

    m_world->addJoint(PhysicsJointPin::construct(paddleBody1, boundBody, Vec2(300, 300)));
    m_world->addJoint(PhysicsJointPin::construct(paddleBody2, boundBody, Vec2(600, 300)));
    
    PhysicsJointRotarySpring* jointRotarySpring = PhysicsJointRotarySpring::construct(paddleBody1, 
                                                                  paddleBody2, stiffness, damping);
    
    m_world->addJoint(jointRotarySpring);
    

    Với boundBody là Physics Body của cái khung bao quanh màn hình.

    ss_1

    Rotary limit joints

    Giống như Limit Joint, nhưng làm việc với các trục quay.

    m_world->addJoint(PhysicsJointPin::construct(paddleBody1, boundBody, Vec2(300, 300)));
    m_world->addJoint(PhysicsJointPin::construct(paddleBody2, boundBody, Vec2(600, 300)));
    
    PhysicsJointRotaryLimit* jointRotaryLimit = PhysicsJointRotarySpring::construct(paddleBody1,
                                                                           paddleBody2, min, max);
    
    m_world->addJoint(jointRotarySpring);

    Ratchet joints

    Làm việc như một ổ khóa, nếu xoay một trong các bodies, body còn lại sẽ quay cùng chiều với body ban đầu. Khi quay càng nhanh thì body còn lại sẽ quay theo càng nhanh. Nhưng nếu quay ngược lại thì body còn lại vẫn quay theo chiều ban đầu. 

    m_world->addJoint(PhysicsJointPin::construct(paddleBody1, boundBody, Vec2(300, 300)));
    m_world->addJoint(PhysicsJointPin::construct(paddleBody2, boundBody, Vec2(600, 300)));
    
    PhysicsJointRatchet* jointRotarySpring = PhysicsJointRachet::construct(paddleBody1, 
                                                               paddleBody2, phase, ratchet);
    
    m_world->addJoint(jointRotarySpring);

    Gear joints

    Giữ tỷ lệ vận tốc góc của cặp bodies tham gia vào joint liên tục. Tỷ lệ luôn luôn được đo trong điều kiện tuyệt đối. 

    m_world->addJoint(PhysicsJointPin::construct(paddleBody1, boundBody, Vec2(300, 300)));
    m_world->addJoint(PhysicsJointPin::construct(paddleBody2, boundBody, Vec2(600, 300)));
    
    PhysicsJointGear* jointRotarySpring = PhysicsJointGear::construct(paddleBody1, paddleBody2,
                                                                                 phase, ratio);
    
    m_world->addJoint(jointRotarySpring);

    Motor joints

    Giữ vận tốc góc tương đối của hai đối tượng tham gia vào joint liên tục.

    m_world->addJoint(PhysicsJointPin::construct(paddleBody1, boundBody, Vec2(300, 300)));
    m_world->addJoint(PhysicsJointPin::construct(paddleBody2, boundBody, Vec2(600, 300)));
    
    PhysicsJointMotor* jointRotarySpring = PhysicsJointRotarySpring::construct(paddleBody1, 
                                                                         paddleBody2,rate);
    
    m_world->addJoint(jointRotarySpring);
    0 Bình luận
    Lập Trình Game

    Lập Trình Game

    Kiến thức, kỹ thuật, kinh nghiệm lập trình game.

    Khi bạn nhấn vào sản phẩm do chúng tôi đề xuất và mua hàng, chúng tôi sẽ nhận được hoa hồng. Điều này hỗ trợ chúng tôi có thêm kinh phí tạo nhiều nội dung hữu ích. Tìm hiểu thêm.
    STDIO

    Trang chính

    Công ty TNHH STDIO

    • 30, Trịnh Đình Thảo, Hòa Thạnh, Tân Phú, Hồ Chí Minh
      +84 28.36205514 - +84 942.111912
      developer@stdio.vn
    • 383/1 Quang Trung, Phường 10, Quận Gò Vấp, Hồ Chí Minh
      Số giấy phép ĐKKD: 0311563559 do sở Kế hoạch và Đầu Tư TPHCM cấp ngày 23/02/2012
    ©STDIO, 2013 - 2021