นี่คือขั้นตอนพื้นฐานที่คุณจะต้องปฏิบัติตาม:
ขั้นแรกสร้างวัตถุโลก (เช่นbtDiscreteDynamicsWorld
) เพื่อขับเคลื่อนการจำลองทางฟิสิกส์ของคุณ
คุณควรมีคลาสเช่นGameObject
นั้นซึ่งอาจเก็บแบบจำลองพร้อมกล่องขอบและตำแหน่ง / ทิศทางในโลก แทนที่ตำแหน่ง / ปฐมนิเทศข้อมูลกับตัวอย่างของฟิสิกส์ร่างกายวัตถุ (เช่นbtRigidBody
) และเมื่อการแสดงผลรูปแบบการใช้ข้อมูลที่ให้ไว้โดยร่างกายแทน เมื่อสร้างร่างกายคุณจะต้องจัดเตรียมรูปร่างและการชนซึ่งควรจะตรงกับปริมาณที่คุณมีอยู่แล้ว ฉันเคยพูดถึงเรื่องนี้ในคำถามอื่นของคุณด้วย
เพิ่มแต่ละเกมวัตถุของร่างกายไปทั่วโลกวัตถุ
อัปเดตการจำลองด้วยการก้าวเข้าสู่โลก (เช่นการโทรหาstepSimulation
โลกของคุณ)
และใช้เวลาในการอ่านคู่มือเนื่องจากมีข้อมูลจำนวนมากเช่นกัน
แก้ไขเพื่อแสดงความคิดเห็น
ฉันประจบประแจงก่อนที่จะถาม แต่ ... ฉันจะทำสิ่งพื้นฐานมาก ๆ อย่างเช่นเพียงรวมไฟล์ที่ถูกต้องในเกมของฉันได้อย่างไร หากคุณต้องการเฉพาะฉันกำลังมองหาไฟล์ที่จะจัดการกับการชนกันของร่างกายที่เข้มงวด ขอบคุณมากสำหรับความช่วยเหลือจนถึงตอนนี้!
มันจะปรากฏจากความคิดเห็นของคุณว่าคุณไม่เคยทำงานกับไลบรารี C ++ ภายนอกมาก่อน เป็นเวลานานแล้วที่ฉันได้ทำสิ่งนี้ แต่นี่เป็นวิธีที่ฉันจำได้ว่าเป็นกระบวนการ (ใน Visual Studio)
สำหรับผู้เริ่มฉันอ้างคู่มือซึ่งอธิบายสิ่งที่คุณต้องการแล้ว:
- #include “btBulletDynamicsCommon.h” in your source file
- Required include path: Bullet/src folder
- Required libraries: BulletDynamics, BulletCollision, LinearMath
และนี่คือขั้นตอนพื้นฐานที่คุณจะต้องทำตามเพื่อปฏิบัติตามเงื่อนไขข้างต้น ...
1. ขั้นตอนการเตรียมการ
C:\Bullet
แรกของทุกดึงไฟล์ที่คุณดาวน์โหลดลงในไดเรกทอรีที่รู้จักกันเช่น คุณจะต้องรู้เส้นทางไปยังโฟลเดอร์นี้ในภายหลัง
ภายในมีสองโฟลเดอร์ที่คุณจะต้องอ้างอิงในโครงการของคุณ แรกคือsrc
โฟลเดอร์ที่เก็บ.h
ไฟล์ส่วนหัวที่คุณจะรวมไว้ในซอร์สโค้ดของคุณ ประการที่สองคือlib
โฟลเดอร์ที่จะเก็บ.lib
ไฟล์ไลบรารีที่คุณจะเชื่อมโยงไปยังโครงการของคุณ โปรดสังเกตว่าการรวมและการเชื่อมโยงเป็นสองสิ่งที่แตกต่างกัน
แต่ตอนนี้lib
โฟลเดอร์ควรจะว่างเปล่าเพราะคุณยังไม่ได้สร้างเอ็นจิ้น ดังนั้นอ้างอิงคู่มือในการสร้างโครงการโดยใช้ CMake และ Visual Studio เป็นต้น มันอยู่ในหน้า 7
หลังจากที่คุณประสบความสำเร็จคุณควรมีอย่างน้อยสามไฟล์ในlib
โฟลเดอร์BulletDynamics.lib
, BulletCollision.lib
และLinearMath.lib
(ฉันเดาจากคู่มือ) ตอนนี้เพื่อทำการเชื่อมต่อระหว่าง Bullet และโครงการของคุณ ...
2. รวมส่วนหัว
ก่อนอื่นคุณจะต้องเพิ่มC:\Bullet\src
โฟลเดอร์ในตัวเลือกพา ธ รวมของโครงการของคุณ คุณสามารถทำได้ใน Visual Studio โดยคลิกขวาที่โครงการนำทางไปยังConfiguration Properties -> C/C++ -> General -> Additional Include Directories
และเขียนเส้นทางไดเรกทอรีในนั้น
หลังจากตั้งค่าแล้วคุณสามารถทำ#include “btBulletDynamicsCommon.h”
กับรหัสของคุณได้ ส่วนหัวนั้นดูเหมือนจะทำหน้าที่เป็นฮับสำหรับคุณสมบัติทั้งหมดที่คุณต้องการ
3. เชื่อมโยงไลบรารี
ในที่สุดคุณจะต้องเชื่อมโยงห้องสมุดที่กล่าวถึงข้างต้น เฟิร์สภายใต้การConfiguration Properties -> Linker -> General -> Additional Library Directories
เพิ่มเส้นทางไปยังโฟลเดอร์หรือกล่าวอีกนัยหนึ่งlib
C:\Bullet\lib
จากนั้นภายใต้Configuration Properties -> Linker -> Input-> Additional Dependencies
ให้เพิ่มชื่อไลบรารีลงในรายการการพึ่งพา แยกแต่ละไลบรารีด้วย a ;
และอย่าลืมนามสกุลไฟล์ ดังนั้นสำหรับตัวอย่างเช่นคุณอาจเพิ่มBulletDynamics.lib;BulletCollision.lib;LinearMath.lib
นี้ไปยังจุดสิ้นสุดของรายการ:
หลังจากนี้คุณควรจะสามารถสร้างและเรียกใช้โครงการของคุณ
4.4 Integration overview
ฉันรู้ว่ามันเป็นสปาร์ตัน แต่มันอธิบายกระบวนการพื้นฐาน ดังนั้นหากคุณดูและตัวอย่างของเดโมแล้วคุณไม่ควรมีปัญหามากเกินไป