Fixed movement Input

This commit is contained in:
Halbear 2026-07-07 12:50:02 +01:00
parent 8a92f99474
commit 42fc70100d
3 changed files with 39 additions and 62 deletions

View file

@ -284,61 +284,9 @@ public class GameCore implements GameLogic {
public void Input(EngineInstance engineInstance, long FrameDiffNanoSeconds) {
IScene scene = engineInstance.scene();
Window window = engineInstance.window();
KeyboardInput input = window.getKeyboardInput();
float MovementDist = (float)(FrameDiffNanoSeconds / 1000000L) * MOVEMENT_SPEED;
Camera camera = scene.GetCamera();
PlayerActor playerActor = (PlayerActor) Actor.Actors.get(PlayerActorID);
if(playerActor!= null)camera = Camera.GetCamera(playerActor.AttachedCameraID);
if(input.keyPressed(GLFW_KEY_ENTER)) {
SpawnNewActor(engineInstance, new Vector3f( (float)(5 * Math.random()),20 + (float)(10 * Math.random()), (float)(5 * Math.random())),new Vector3f(-1f + (float)(2 * Math.random()),-1f + (float)(2 * Math.random()),-1f + (float)(2 * Math.random())),new Vector3f((float)Math.random(),(float)Math.random(),(float)Math.random()));
}
if(input.keyPressed(GLFW_KEY_1)) {
Gimbal.universalType = Gimbal.GimbalType.Move;
}
if(input.keyPressed(GLFW_KEY_2)) {
Gimbal.universalType = Gimbal.GimbalType.Resize;
}
if(input.keyPressed(GLFW_KEY_3)) {
Gimbal.universalType = Gimbal.GimbalType.Rotate;
}
if(input.keyPressed(GLFW_KEY_TAB)){
for(int i = 0; i < ActorEditorComponents.size(); i++){
ActorEditorComponents.get(i).UpdateAll();
}
}
if(input.keySinglePress(GLFW_KEY_F2)) {
EngineConfig.getInstance().SetRenderCollisionMesh(!EngineConfig.getInstance().RenderCollisionMeshes());
}
if(input.keyPressed(GLFW_KEY_W)){
if(playerActor == null)camera.MoveForward(MovementDist);
else playerActor.Move(new Vector3f(MovementDist* (float)Math.sin((camera.GetRotation().y)),0,-MovementDist* (float)Math.cos((camera.GetRotation().y))));
}
if(input.keyPressed(GLFW_KEY_S)){
if(playerActor == null)camera.MoveBackward(MovementDist);
else playerActor.Move(new Vector3f(-MovementDist* (float)Math.sin((camera.GetRotation().y)),0,MovementDist * (float)Math.cos((camera.GetRotation().y))));
}
if(input.keyPressed(GLFW_KEY_A)){
if(playerActor == null) camera.MoveLeft(MovementDist);
else playerActor.Move(new Vector3f(-MovementDist * (float)Math.cos((camera.GetRotation().y)),0,-MovementDist * (float)Math.sin((camera.GetRotation().y))));
}
if(input.keyPressed(GLFW_KEY_D)){
if(playerActor == null)camera.MoveRight(MovementDist);
else playerActor.Move(new Vector3f(MovementDist * (float)Math.cos((camera.GetRotation().y)),0,MovementDist * (float)Math.sin((camera.GetRotation().y))));
}
if(input.keyPressed(GLFW_KEY_SPACE)){
if(playerActor == null)camera.MoveUp(MovementDist);
}
if(input.keySinglePress(GLFW_KEY_SPACE)){
// camera.MoveUp(MovementDist);
if(playerActor != null)playerActor.Move(new Vector3f(0,5f,0));
}
if(input.keyPressed(GLFW_KEY_LEFT_SHIFT)){
if(playerActor == null)camera.MoveDown(MovementDist);
}
if(input.keyPressed(GLFW_KEY_LEFT_CONTROL)){
camera.Sprint(true);
} else camera.Sprint(false);
scene.Input(engineInstance,FrameDiffNanoSeconds, playerActor, MOVEMENT_SPEED,this);
}
private boolean HandleGui(EngineInstance engineInstance, long frameTimeNS){

View file

@ -23,7 +23,7 @@ public interface IScene {
public Project3D GetProjection();
public void RemoveAllActors();
public Actor RemoveActor(Actor actor);
public void Input(EngineInstance engineInstance, long FrameDiffNanoSeconds);
public void Input(EngineInstance engineInstance, long FrameDiffNanoSeconds, PlayerActor playerActor, float MOVEMENT_SPEED,GameCore parent);
public void Update(EngineInstance engineInstance, long FrameDiffNanoSeconds);
public void UpdateFastThread(EngineInstance engineInstance, long FrameDiffNanoSeconds);
public void SecondUpdate(EngineInstance engineInstance);

View file

@ -170,33 +170,62 @@ public class Scene implements IScene {
public int GUI_MODE = 0;
@Override
public void Input(EngineInstance engineInstance, long FrameDiffNanoSeconds) {
public void Input(EngineInstance engineInstance, long FrameDiffNanoSeconds,PlayerActor playerActor, float MOVEMENT_SPEED, GameCore parent) {
IScene scene = engineInstance.scene();
Window window = engineInstance.window();
KeyboardInput input = window.getKeyboardInput();
float MovementDist = (float)(FrameDiffNanoSeconds / 1000000L) * MOVEMENT_SPEED;
Camera camera = scene.GetCamera();
if(playerActor!= null)camera = Camera.GetCamera(playerActor.AttachedCameraID);
if(input.keySinglePress(GLFW_KEY_F3)){
GUI_MODE = (GUI_MODE + 1) % 2;
}
if(input.keyPressed(GLFW_KEY_ENTER)) {
parent.SpawnNewActor(engineInstance, new Vector3f( (float)(5 * Math.random()),20 + (float)(10 * Math.random()), (float)(5 * Math.random())),new Vector3f(-1f + (float)(2 * Math.random()),-1f + (float)(2 * Math.random()),-1f + (float)(2 * Math.random())),new Vector3f((float)Math.random(),(float)Math.random(),(float)Math.random()));
}
if(input.keyPressed(GLFW_KEY_1)) {
Gimbal.universalType = Gimbal.GimbalType.Move;
}
if(input.keyPressed(GLFW_KEY_2)) {
Gimbal.universalType = Gimbal.GimbalType.Resize;
}
if(input.keyPressed(GLFW_KEY_3)) {
Gimbal.universalType = Gimbal.GimbalType.Rotate;
}
if(input.keyPressed(GLFW_KEY_TAB)){
for(int i = 0; i < parent.ActorEditorComponents.size(); i++){
parent.ActorEditorComponents.get(i).UpdateAll();
}
}
if(input.keySinglePress(GLFW_KEY_F2)) {
EngineConfig.getInstance().SetRenderCollisionMesh(!EngineConfig.getInstance().RenderCollisionMeshes());
}
if(input.keyPressed(GLFW_KEY_W)){
camera.MoveForward(MovementDist);
if(playerActor == null)camera.MoveForward(MovementDist);
else playerActor.Move(new Vector3f(MovementDist* (float)Math.sin((camera.GetRotation().y)),0,-MovementDist* (float)Math.cos((camera.GetRotation().y))));
}
if(input.keyPressed(GLFW_KEY_S)){
camera.MoveBackward(MovementDist);
if(playerActor == null)camera.MoveBackward(MovementDist);
else playerActor.Move(new Vector3f(-MovementDist* (float)Math.sin((camera.GetRotation().y)),0,MovementDist * (float)Math.cos((camera.GetRotation().y))));
}
if(input.keyPressed(GLFW_KEY_A)){
camera.MoveLeft(MovementDist);
if(playerActor == null) camera.MoveLeft(MovementDist);
else playerActor.Move(new Vector3f(-MovementDist * (float)Math.cos((camera.GetRotation().y)),0,-MovementDist * (float)Math.sin((camera.GetRotation().y))));
}
if(input.keyPressed(GLFW_KEY_D)){
camera.MoveRight(MovementDist);
if(playerActor == null)camera.MoveRight(MovementDist);
else playerActor.Move(new Vector3f(MovementDist * (float)Math.cos((camera.GetRotation().y)),0,MovementDist * (float)Math.sin((camera.GetRotation().y))));
}
if(input.keyPressed(GLFW_KEY_SPACE)){
camera.MoveUp(MovementDist);
if(playerActor == null)camera.MoveUp(MovementDist);
}
if(input.keySinglePress(GLFW_KEY_SPACE)){
// camera.MoveUp(MovementDist);
if(playerActor != null)playerActor.Move(new Vector3f(0,5f,0));
}
if(input.keyPressed(GLFW_KEY_LEFT_SHIFT)){
camera.MoveDown(MovementDist);
if(playerActor == null)camera.MoveDown(MovementDist);
}
if(input.keyPressed(GLFW_KEY_LEFT_CONTROL)){
camera.Sprint(true);