forked from LeenkxTeam/LNXSDK
Update Files
This commit is contained in:
63
lib/haxebullet/README.md
Normal file
63
lib/haxebullet/README.md
Normal file
@ -0,0 +1,63 @@
|
||||
# haxebullet
|
||||
|
||||
[Bullet 3D Physics](http://bulletphysics.org/) bindings for Haxe.
|
||||
|
||||
Based on the webidl approach, works for HL/C & JS:
|
||||
- https://github.com/ncannasse/webidl
|
||||
- https://github.com/HeapsIO/bullet
|
||||
- https://github.com/bulletphysics/bullet3
|
||||
- https://github.com/kripken/ammo.js
|
||||
|
||||
## Usage
|
||||
|
||||
[Reference](http://bulletphysics.org/mediawiki-1.5.8/index.php/Hello_World)
|
||||
|
||||
In order to get HL/C build to work you need to add `haxebullet/bullet` and `haxebullet/hl` directories into your build process so the compiler is able to find bullet sources.
|
||||
|
||||
In order to get JS build to work you need to add `haxebullet/ammo/ammo.js` script either by embedding or including it with a script tag.
|
||||
|
||||
``` hx
|
||||
var collisionConfiguration = new bullet.Bt.DefaultCollisionConfiguration();
|
||||
var dispatcher = new bullet.Bt.CollisionDispatcher(collisionConfiguration);
|
||||
var broadphase = new bullet.Bt.DbvtBroadphase();
|
||||
var solver = new bullet.Bt.SequentialImpulseConstraintSolver();
|
||||
var dynamicsWorld = new bullet.Bt.DiscreteDynamicsWorld(dispatcher, broadphase, solver, collisionConfiguration);
|
||||
|
||||
var groundShape = new bullet.Bt.StaticPlaneShape(new bullet.Bt.Vector3(0, 1, 0), 1);
|
||||
var groundTransform = new bullet.Bt.Transform();
|
||||
groundTransform.setIdentity();
|
||||
groundTransform.setOrigin(new bullet.Bt.Vector3(0, -1, 0));
|
||||
var centerOfMassOffsetTransform = new bullet.Bt.Transform();
|
||||
centerOfMassOffsetTransform.setIdentity();
|
||||
var groundMotionState = new bullet.Bt.DefaultMotionState(groundTransform, centerOfMassOffsetTransform);
|
||||
|
||||
var groundRigidBodyCI = new bullet.Bt.RigidBodyConstructionInfo(0.01, groundMotionState, cast groundShape, new bullet.Bt.Vector3(0, 0, 0));
|
||||
var groundRigidBody = new bullet.Bt.RigidBody(groundRigidBodyCI);
|
||||
dynamicsWorld.addRigidBody(groundRigidBody);
|
||||
|
||||
var fallShape = new bullet.Bt.SphereShape(1);
|
||||
var fallTransform = new bullet.Bt.Transform();
|
||||
fallTransform.setIdentity();
|
||||
fallTransform.setOrigin(new bullet.Bt.Vector3(0, 50, 0));
|
||||
var centerOfMassOffsetFallTransform = new bullet.Bt.Transform();
|
||||
centerOfMassOffsetFallTransform.setIdentity();
|
||||
var fallMotionState = new bullet.Bt.DefaultMotionState(fallTransform, centerOfMassOffsetFallTransform);
|
||||
|
||||
var fallInertia = new bullet.Bt.Vector3(0, 0, 0);
|
||||
// fallShape.calculateLocalInertia(1, fallInertia);
|
||||
var fallRigidBodyCI = new bullet.Bt.RigidBodyConstructionInfo(1, fallMotionState, fallShape, fallInertia);
|
||||
var fallRigidBody = new bullet.Bt.RigidBody(fallRigidBodyCI);
|
||||
dynamicsWorld.addRigidBody(fallRigidBody);
|
||||
|
||||
for (i in 0...3000) {
|
||||
dynamicsWorld.stepSimulation(1 / 60);
|
||||
|
||||
var trans = new bullet.Bt.Transform();
|
||||
var m = fallRigidBody.getMotionState();
|
||||
m.getWorldTransform(trans);
|
||||
trace(trans.getOrigin().y());
|
||||
trans.delete();
|
||||
}
|
||||
|
||||
// ...delete();
|
||||
```
|
Reference in New Issue
Block a user