From 8ccc29ef7da8aed5616f6035b156eca87b11e923 Mon Sep 17 00:00:00 2001 From: austin Date: Sun, 10 Oct 2021 17:14:15 -0400 Subject: [PATCH] Tie movespeed to framerate --- assets/Data/creatures.json | 4 ++-- .../entity/state/movement/MovementTree.java | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/assets/Data/creatures.json b/assets/Data/creatures.json index c96fdada..f818d89f 100644 --- a/assets/Data/creatures.json +++ b/assets/Data/creatures.json @@ -252,8 +252,8 @@ "movementSystems" : [ { "type" : "GROUND", - "acceleration" : 0.05, - "maxVelocity" : 0.25 + "acceleration" : 0.15, + "maxVelocity" : 1 } ], "physicsObject" : { diff --git a/src/main/java/electrosphere/entity/state/movement/MovementTree.java b/src/main/java/electrosphere/entity/state/movement/MovementTree.java index 8fd35144..fc5baef0 100644 --- a/src/main/java/electrosphere/entity/state/movement/MovementTree.java +++ b/src/main/java/electrosphere/entity/state/movement/MovementTree.java @@ -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); }