Saya telah berhasil mengintegrasikan perpustakaan Bullet Physics ke sistem entitas / komponen saya. Entitas dapat saling bertabrakan. Sekarang saya harus memungkinkan mereka untuk bertabrakan dengan medan, yang terbatas dan seperti kubus (pikirkan InfiniMiner atau tiruannya Minecraft ). Saya hanya mulai menggunakan perpustakaan Bullet Physics kemarin, jadi mungkin saya kehilangan sesuatu yang jelas.
Sejauh ini saya telah memperluas RigidBody
kelas untuk menimpa checkCollisionWith(CollisionObject co)
fungsi. Saat ini hanya pemeriksaan asal sederhana, tidak menggunakan bentuk lainnya. Saya akan mengulanginya nanti. Untuk saat ini terlihat seperti ini:
@Override
public boolean checkCollideWith(CollisionObject co) {
Transform t = new Transform();
co.getWorldTransform(t);
if(COLONY.SolidAtPoint(t.origin.x, t.origin.y,t.origin.z)){
return true;
}
return false;
}
Ini berfungsi dengan baik, sejauh mendeteksi ketika tabrakan terjadi. Namun, ini tidak menangani respons tabrakan. Tampaknya respons tumbukan default adalah memindahkan objek bertabrakan di luar bentuk masing-masing, mungkin AABBs mereka.
Saat ini bentuk medan hanyalah kotak seukuran dunia. Ini berarti entitas yang bertabrakan dengan medan hanya menembak ke luar kotak ukuran dunia. Jadi jelas bahwa saya harus memodifikasi respons tumbukan atau saya perlu membuat bentuk yang sesuai langsung dengan bentuk medan. Jadi opsi mana yang terbaik dan bagaimana cara mengimplementasikannya? Mungkin ada opsi yang tidak saya pikirkan?
Perlu dicatat bahwa medannya dinamis dan sering dimodifikasi oleh pemain.