Tie movespeed to framerate

This commit is contained in:
austin 2021-10-10 17:14:15 -04:00
parent 57c2fa1e61
commit 8ccc29ef7d
2 changed files with 7 additions and 6 deletions

View File

@ -252,8 +252,8 @@
"movementSystems" : [
{
"type" : "GROUND",
"acceleration" : 0.05,
"maxVelocity" : 0.25
"acceleration" : 0.15,
"maxVelocity" : 1
}
],
"physicsObject" : {

View File

@ -12,6 +12,7 @@ import electrosphere.game.collision.CollisionEngine;
import electrosphere.game.collision.PhysicsUtils;
import electrosphere.game.collision.collidable.Collidable;
import electrosphere.main.Globals;
import electrosphere.main.Main;
import electrosphere.net.NetUtils;
import electrosphere.net.parser.net.message.EntityMessage;
import electrosphere.renderer.Actor;
@ -150,7 +151,7 @@ public class MovementTree {
//handle impulses
for(Impulse impulse : collidable.getImpulses()){
// collidable.getImpulses().remove(impulse);
Vector3f impulseForce = new Vector3f(impulse.direction).mul(impulse.force);
Vector3f impulseForce = new Vector3f(impulse.direction).mul(impulse.force).mul(Main.deltaTime);
// System.out.println("Impulse force: " + impulseForce);
position.add(impulseForce);
}
@ -177,7 +178,7 @@ public class MovementTree {
// body.applyCentralForce(PhysicsUtils.jomlToVecmathVector3f(new Vector3f(movementVector.x,0,movementVector.z).normalize().mul(velocity)));
EntityUtils.getRotation(parent).set(movementQuaternion);
//move the entity
newPosition = new Vector3d(position).add(new Vector3d(movementVector).mul(velocity));
newPosition = new Vector3d(position).add(new Vector3d(movementVector).mul(velocity).mul(Main.deltaTime));
//check/update if collision
if(!Globals.collisionEngine.checkCanOccupyPosition(Globals.commonWorldData, parent, newPosition)){
newPosition = Globals.collisionEngine.suggestMovementPosition(Globals.commonWorldData, parent, newPosition);
@ -252,7 +253,7 @@ public class MovementTree {
EntityUtils.getRotation(parent).set(movementQuaternion);
//check if can move forward (collision engine)
//if can, move forward by entity movement stats
newPosition = new Vector3d(position).add(new Vector3d(movementVector).mul(velocity));
newPosition = new Vector3d(position).add(new Vector3d(movementVector).mul(velocity).mul(Main.deltaTime));
if(!Globals.collisionEngine.checkCanOccupyPosition(Globals.commonWorldData, parent, newPosition)){
newPosition = Globals.collisionEngine.suggestMovementPosition(Globals.commonWorldData, parent, newPosition);
}
@ -330,7 +331,7 @@ public class MovementTree {
// body.applyCentralForce(PhysicsUtils.jomlToVecmathVector3f(new Vector3f(movementVector).mul(-1.0f).normalize().mul(velocity)));
EntityUtils.getRotation(parent).rotationTo(new Vector3f(0,0,1), movementVector);
//move the entity
newPosition = new Vector3d(position).add(new Vector3d(movementVector).mul(velocity));
newPosition = new Vector3d(position).add(new Vector3d(movementVector).mul(velocity).mul(Main.deltaTime));
if(!Globals.collisionEngine.checkCanOccupyPosition(Globals.commonWorldData, parent, newPosition)){
newPosition = Globals.collisionEngine.suggestMovementPosition(Globals.commonWorldData, parent, newPosition);
}