Skip to content

Instantly share code, notes, and snippets.

@BlueMagnificent
BlueMagnificent / setupEventHandlers.js
Last active December 28, 2019 10:39
Javascript 3D Physics Tut 2 Base Event Handlers
function setupEventHandlers(){
window.addEventListener( 'keydown', handleKeyDown, false);
window.addEventListener( 'keyup', handleKeyUp, false);
}
function handleKeyDown(event){
@BlueMagnificent
BlueMagnificent / final_dynamics.html
Created December 28, 2019 11:15
Javascript 3D Physics Tut 2 final dynamics
<html>
<head>
<meta charset="utf-8">
<title>Move JS 3D Physics</title>
<style>
body { margin: 0; }
</style>
</head>
<body>
@BlueMagnificent
BlueMagnificent / createKinematicBox.js
Last active December 28, 2019 12:18
Javascript 3D Physics Tut 2 Create Kinematic Box
function createKinematicBox(){
let pos = {x: 40, y: 6, z: 5};
let scale = {x: 10, y: 10, z: 10};
let quat = {x: 0, y: 0, z: 0, w: 1};
let mass = 0;
//threeJS Section
kObject = new THREE.Mesh(new THREE.BoxBufferGeometry(), new THREE.MeshPhongMaterial({color: 0x30ab78}));
@BlueMagnificent
BlueMagnificent / moveKinematic.js
Created December 28, 2019 12:42
Javascript 3D Physics Tut 2 Move Kinematic
function moveKinematic(){
let scalingFactor = 0.3;
let moveX = kMoveDirection.right - kMoveDirection.left;
let moveZ = kMoveDirection.back - kMoveDirection.forward;
let moveY = 0;
@BlueMagnificent
BlueMagnificent / detectCollision.js
Last active August 2, 2020 22:52
Javascript 3D Physics Tut 3 Detect Collision
function detectCollision(){
let dispatcher = physicsWorld.getDispatcher();
let numManifolds = dispatcher.getNumManifolds();
for ( let i = 0; i < numManifolds; i ++ ) {
let contactManifold = dispatcher.getManifoldByIndexInternal( i );
let numContacts = contactManifold.getNumContacts();
@BlueMagnificent
BlueMagnificent / updatePhysics.js
Created August 2, 2020 22:55
Javascript 3D Physics Tut 3 Update Physics
function updatePhysics( deltaTime ){
// Step world
physicsWorld.stepSimulation( deltaTime, 10 );
// Update rigid bodies
for ( let i = 0; i < rigidBodies.length; i++ ) {
let objThree = rigidBodies[ i ];
let objAmmo = objThree.userData.physicsBody;
let ms = objAmmo.getMotionState();
@BlueMagnificent
BlueMagnificent / setupContactResultCallback.js
Last active August 3, 2020 09:24
Javascript 3D Physics Tut 3 Setup Contact Result Callback
function setupContactResultCallback(){
cbContactResult = new Ammo.ConcreteContactResultCallback();
cbContactResult.addSingleResult = function(cp, colObj0Wrap, partId0, index0, colObj1Wrap, partId1, index1){
let contactPoint = Ammo.wrapPointer( cp, Ammo.btManifoldPoint );
const distance = contactPoint.getDistance();
@BlueMagnificent
BlueMagnificent / jump.js
Created August 3, 2020 13:35
Javascript 3D Physics Tut 3 Jump
function jump(){
cbContactPairResult.hasContact = false;
physicsWorld.contactPairTest(ball.userData.physicsBody, redTile.userData.physicsBody, cbContactPairResult);
if( !cbContactPairResult.hasContact ) return;
let jumpImpulse = new Ammo.btVector3( 0, 15, 0 );
@BlueMagnificent
BlueMagnificent / handleKeyDown.js
Created August 3, 2020 13:39
Javascript 3D Physics Tut 3 Handle Key Down
function handleKeyDown(event){
let keyCode = event.keyCode;
switch(keyCode){
case 87: //W: FORWARD
moveDirection.forward = 1;
break;
@BlueMagnificent
BlueMagnificent / contact_manifold_check_one.html
Last active August 3, 2020 15:19
Javascript 3D Physics Tut 3 Contact Manifold Check One
<html>
<head>
<meta charset="utf-8">
<title>Collision JS 3D Physics</title>
<style>
body { margin: 0; }
</style>
</head>
<body>