Added Sprite Physics and Joints

This commit is contained in:
n00b
2024-10-27 23:24:37 -04:00
parent d49b9f5d58
commit 8f1b72a8e2
125 changed files with 9264 additions and 1223 deletions

View File

@@ -37,7 +37,7 @@ sub applyActorImpulseLocal( actor, x, y, z, rel_x, rel_y, rel_z)
sub applyActorImpulseWorld( actor, x, y, z, rel_x, rel_y, rel_z)
sub clearActorForces( actor)
sub updateActorInertiaTensor( actor)
sub getActorCOMPosition( actor, ByRef x, ByRef y, ByRef z)
sub getActorCenter( actor, ByRef x, ByRef y, ByRef z)
sub getActorRotationQ( actor, ByRef x, ByRef y, ByRef z, ByRef w)
sub getActorLinearVelocityWorld( actor, ByRef x, ByRef y, ByRef z)
sub getActorAngularVelocityWorld( actor, ByRef x, ByRef y, ByRef z)
@@ -45,7 +45,7 @@ sub setActorLinearVelocityLocal( actor, x, y, z)
sub setActorLinearVelocityWorld( actor, x, y, z)
sub setActorAngularVelocityLocal( actor, x, y, z)
sub setActorAngularVelocityWorld( actor, x, y, z)
sub getActorLocalPointVelocity( actor, rel_x, rel_y, rel_z, ByRef x, ByRef y, ByRef z)
sub getActorVelocityInLocalPoint( actor, rel_x, rel_y, rel_z, ByRef x, ByRef y, ByRef z)
sub getActorLinearVelocityLocal( actor, ByRef x, ByRef y, ByRef z)
sub getActorAngularVelocityLocal( actor, ByRef x, ByRef y, ByRef z)
sub getActorAABB( actor, ByRef min_x, ByRef min_y, ByRef min_z, ByRef max_x, ByRef max_y, ByRef max_z)

View File

@@ -0,0 +1,67 @@
function createDistanceJoint( spriteA, spriteB, aX, aY, bX, bY)
function createFrictionJoint( spriteA, spriteB, x, y)
function createGearJoint( jointA, jointB, g_ratio)
function createMotorJoint( spriteA, spriteB)
function createPrismaticJoint( spriteA, spriteB, aX, aY, axisX, axisY)
function createPulleyJoint( spriteA, spriteB, gaX, gaY, gbX, gbY, aX, aY, bX, bY, j_ratio)
function createRevoluteJoint( spriteA, spriteB, x, y)
function createWeldJoint( spriteA, spriteB, x, y)
function createWheelJoint( spriteA, spriteB, aX, aY, axisX, axisY)
sub getJointWorldAnchorA( joint_id, ByRef x, ByRef y)
sub getJointWorldAnchorB( joint_id, ByRef x, ByRef y)
sub getJointReactionForce( joint_id, inv_dt, ByRef x, ByRef y)
function getJointReactionTorque( joint_id, inv_dt)
sub getJointLocalAnchorA( joint_id, ByRef x, ByRef y)
sub getJointLocalAnchorB( joint_id, ByRef x, ByRef y)
sub setJointLength( joint_id, jlen)
function getJointLength( joint_id)
sub setJointMinLength( joint_id, jlen)
function getJointMinLength( joint_id)
sub setJointMaxLength( joint_id, jlen)
function getJointMaxLength( joint_id)
function getJointCurrentLength( joint_id)
sub setJointStiffness( joint_id, stiffness)
function getJointStiffness( joint_id)
sub setJointDamping( joint_id, damping)
function getJointDamping( joint_id)
sub setJointMaxForce( joint_id, force)
function getJointMaxForce( joint_id)
sub setJointMaxTorque( joint_id, torque)
function getJointMaxTorque( joint_id)
sub setJointCorrectionFactor( joint_id, factor)
function getJointCorrectionFactor( joint_id)
sub setJointRatio( joint_id, j_ratio)
function getJointRatio( joint_id)
sub setJointLinearOffset( joint_id, x, y)
sub getJointLinearOffset( joint_id, ByRef x, ByRef y)
sub setJointAngularOffset( joint_id, angleOffset)
function getJointAngularOffset( joint_id)
sub getJointLocalAxisA( joint_id, ByRef x, ByRef y)
function getJointReferenceAngle( joint_id)
function getJointTranslation( joint_id)
function getJointSpeed( joint_id)
function jointIsLimitEnabled( joint_id)
sub enableJointLimit( joint_id, flag)
function getJointLowerLimit( joint_id)
function getJointUpperLimit( joint_id)
sub setJointLimits( joint_id, lower_limit, upper_limit)
function jointMotorIsEnabled( joint_id)
sub enableJointMotor( joint_id, flag)
sub setJointMotorSpeed( joint_id, speed)
function getJointMotorSpeed( joint_id)
sub setJointMaxMotorForce( joint_id, force)
function getJointMaxMotorForce( joint_id)
function getJointMotorForce( joint_id, inv_dt)
sub setJointMaxMotorTorque( joint_id, torque)
function getJointMaxMotorTorque( joint_id)
function getJointMotorTorque( joint_id, inv_dt)
sub getJointGroundAnchorA( joint_id, ByRef x, ByRef y)
sub getJointGroundAnchorB( joint_id, ByRef x, ByRef y)
function getJointLengthA( joint_id)
function getJointLengthB( joint_id)
function getJointCurrentLengthA( joint_id)
function getJointCurrentLengthB( joint_id)
sub setJointOrigin( joint_id, x, y)
function getJointAngle( joint_id)
function getJointLinearSpeed( joint_id)
function getJointAngularSpeed( joint_id)

View File

@@ -0,0 +1,32 @@
sub getSpriteCenter( spr_id, ByRef x, ByRef y)
sub setSpriteLinearVelocity( spr_id, x, y)
sub getSpriteLinearVelocity( spr_id, ByRef x, ByRef y)
sub setSpriteAngularVelocity( spr_id, av)
function getSpriteAngularVelocity( spr_id)
sub applySpriteForce( spr_id, fX, fY, pX, pY)
sub applySpriteCentralForce( spr_id, x, y)
sub applySpriteTorque( spr_id, torque)
sub applySpriteLinearImpulse( spr_id, iX, iY, pX, pY)
sub applySpriteAngularImpulse( spr_id, impulse)
function getSpriteMass( spr_id)
function getSpriteInertia( spr_id)
sub getSpriteWorldPoint( spr_id, lX, lY, ByRef x, ByRef y)
sub getSpriteWorldVector( spr_id, lX, lY, ByRef x, ByRef y)
sub getSpriteLocalPoint( spr_id, wX, wY, ByRef x, ByRef y)
sub getSpriteLocalVector( spr_id, wX, wY, ByRef x, ByRef y)
sub getSpriteLinearVelocityFromLocalPoint( spr_id, pX, pY, ByRef x, ByRef y)
sub getSpriteLinearVelocityFromWorldPoint( spr_id, wX, wY, ByRef x, ByRef y)
function getSpriteLinearDamping( spr_id)
sub setSpriteLinearDamping( spr_id, linearDamping)
function getSpriteAngularDamping( spr_id)
sub setSpriteAngularDamping( spr_id, angularDamping)
function getSpriteGravityScale( spr_id)
sub setSpriteGravityScale( spr_id, g_scale)
sub setSpriteBullet( spr_id, flag)
function spriteIsBullet( spr_id)
sub setSpriteSleepAllowed( spr_id, flag)
function spriteSleepAllowed( spr_id)
sub setSpriteAwake( spr_id, flag)
function spriteIsAwake( spr_id)
sub setSpriteFixedRotation( spr_id, flag)
function spriteIsFixedRotation( spr_id)