removed flying added double jump :)
This commit is contained in:
parent
42fc70100d
commit
f2174e4364
2 changed files with 1048 additions and 948 deletions
1794
LastSession.t4jlog
1794
LastSession.t4jlog
File diff suppressed because it is too large
Load diff
|
|
@ -5,6 +5,8 @@ import net.halbear.Terrain4J.EngineCore.Input.KeyboardInput;
|
||||||
import net.halbear.Terrain4J.EngineCore.Input.MouseListener;
|
import net.halbear.Terrain4J.EngineCore.Input.MouseListener;
|
||||||
import net.halbear.Terrain4J.EngineCore.Logic.EngineConfig;
|
import net.halbear.Terrain4J.EngineCore.Logic.EngineConfig;
|
||||||
import net.halbear.Terrain4J.EngineCore.Logic.EngineInstance;
|
import net.halbear.Terrain4J.EngineCore.Logic.EngineInstance;
|
||||||
|
import net.halbear.Terrain4J.EngineCore.Logic.Physics.RigidBody.RigidBody;
|
||||||
|
import net.halbear.Terrain4J.EngineCore.Logic.Physics.RigidBody.RigidPhysicsController;
|
||||||
import net.halbear.Terrain4J.EngineCore.Logic.Rendering.SkyBox;
|
import net.halbear.Terrain4J.EngineCore.Logic.Rendering.SkyBox;
|
||||||
import net.halbear.Terrain4J.EngineCore.Main.AudioInstance;
|
import net.halbear.Terrain4J.EngineCore.Main.AudioInstance;
|
||||||
import net.halbear.Terrain4J.EngineCore.Main.GameCore;
|
import net.halbear.Terrain4J.EngineCore.Main.GameCore;
|
||||||
|
|
@ -47,6 +49,8 @@ public class Scene implements IScene {
|
||||||
private SkyBox skyBox;
|
private SkyBox skyBox;
|
||||||
private Map<String, AudioInstance> audioInstances;
|
private Map<String, AudioInstance> audioInstances;
|
||||||
private DynamicTerrainMesh terrainMesh;
|
private DynamicTerrainMesh terrainMesh;
|
||||||
|
private int Jumps = 0;
|
||||||
|
private final int MaxJumps = 2;
|
||||||
|
|
||||||
public List<String> ActiveGUIs = new ArrayList<>();
|
public List<String> ActiveGUIs = new ArrayList<>();
|
||||||
public Map<String, GUIOverlay> GUIReg = new HashMap<>();
|
public Map<String, GUIOverlay> GUIReg = new HashMap<>();
|
||||||
|
|
@ -71,7 +75,9 @@ public class Scene implements IScene {
|
||||||
terrainMesh = new DynamicTerrainMesh(PrimaryRuntime.GetRenderThread().GetRenderer().GetVulkanContext().GetDevice(), Heights, Width, Height);
|
terrainMesh = new DynamicTerrainMesh(PrimaryRuntime.GetRenderThread().GetRenderer().GetVulkanContext().GetDevice(), Heights, Width, Height);
|
||||||
}
|
}
|
||||||
|
|
||||||
public SkyBox GetSkyBox(){return skyBox;}
|
public SkyBox GetSkyBox() {
|
||||||
|
return skyBox;
|
||||||
|
}
|
||||||
|
|
||||||
public Scene(Window window) {
|
public Scene(Window window) {
|
||||||
// CreateTerrainMesh();
|
// CreateTerrainMesh();
|
||||||
|
|
@ -89,7 +95,9 @@ public class Scene implements IScene {
|
||||||
ActiveGUIs.add("PerformanceOverlay");
|
ActiveGUIs.add("PerformanceOverlay");
|
||||||
}
|
}
|
||||||
|
|
||||||
public ISceneLightingManager GetLightingManager(){return lightingManager;}
|
public ISceneLightingManager GetLightingManager() {
|
||||||
|
return lightingManager;
|
||||||
|
}
|
||||||
|
|
||||||
public void CameraTick(long FrameDiffNanoSeconds) {
|
public void CameraTick(long FrameDiffNanoSeconds) {
|
||||||
float FrameTimeMS = FrameDiffNanoSeconds / 1000000.0f;
|
float FrameTimeMS = FrameDiffNanoSeconds / 1000000.0f;
|
||||||
|
|
@ -133,25 +141,43 @@ public class Scene implements IScene {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<String, CameraFrame> GetCameraFrameReg(){return CameraFrames;}
|
public Map<String, CameraFrame> GetCameraFrameReg() {
|
||||||
public CameraFrame GetCameraFrame(String Name){return CameraFrames.get(Name);}
|
return CameraFrames;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CameraFrame GetCameraFrame(String Name) {
|
||||||
|
return CameraFrames.get(Name);
|
||||||
|
}
|
||||||
|
|
||||||
public Scene AddCameraFrame(String Name, CameraFrame frame) {
|
public Scene AddCameraFrame(String Name, CameraFrame frame) {
|
||||||
CameraFrames.put(Name, frame);
|
CameraFrames.put(Name, frame);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void StartCameraTrack(String StartFrame, String EndFrame, int TickAmount) {
|
public void StartCameraTrack(String StartFrame, String EndFrame, int TickAmount) {
|
||||||
ActiveCameraFrame = StartFrame;
|
ActiveCameraFrame = StartFrame;
|
||||||
CurrentTransitionTick = 0;
|
CurrentTransitionTick = 0;
|
||||||
TotalTransitionTicks = TickAmount;
|
TotalTransitionTicks = TickAmount;
|
||||||
SetCameraFrame = EndFrame;
|
SetCameraFrame = EndFrame;
|
||||||
}
|
}
|
||||||
public void SetActiveCameraFrame(String frameName){SetCameraFrame = frameName;}
|
|
||||||
public String GetActiveCameraFrame(){return ActiveCameraFrame;}
|
public void SetActiveCameraFrame(String frameName) {
|
||||||
public Camera GetCamera(){return camera;}
|
SetCameraFrame = frameName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String GetActiveCameraFrame() {
|
||||||
|
return ActiveCameraFrame;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Camera GetCamera() {
|
||||||
|
return camera;
|
||||||
|
}
|
||||||
|
|
||||||
public void AddActor(Actor NewActor) {
|
public void AddActor(Actor NewActor) {
|
||||||
Actors.put(NewActor.GetID(), NewActor);
|
Actors.put(NewActor.GetID(), NewActor);
|
||||||
ActiveActors.add(NewActor.GetID());
|
ActiveActors.add(NewActor.GetID());
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Actor> GetActors() {
|
public List<Actor> GetActors() {
|
||||||
List<Actor> actors = new ArrayList<>();
|
List<Actor> actors = new ArrayList<>();
|
||||||
for (int i = 0; i < ActiveActors.size(); i++) {
|
for (int i = 0; i < ActiveActors.size(); i++) {
|
||||||
|
|
@ -159,9 +185,18 @@ public class Scene implements IScene {
|
||||||
}
|
}
|
||||||
return actors;
|
return actors;
|
||||||
}
|
}
|
||||||
public Project3D GetProjection(){return Projection;}
|
|
||||||
public void RemoveAllActors(){Actors.clear();}
|
public Project3D GetProjection() {
|
||||||
public Actor RemoveActor(Actor actor){return Actors.remove(actor.GetID());}
|
return Projection;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void RemoveAllActors() {
|
||||||
|
Actors.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Actor RemoveActor(Actor actor) {
|
||||||
|
return Actors.remove(actor.GetID());
|
||||||
|
}
|
||||||
|
|
||||||
public void SetUpAudio(EngineInstance engineInstance) {
|
public void SetUpAudio(EngineInstance engineInstance) {
|
||||||
|
|
||||||
|
|
@ -203,26 +238,41 @@ public class Scene implements IScene {
|
||||||
}
|
}
|
||||||
if (input.keyPressed(GLFW_KEY_W)) {
|
if (input.keyPressed(GLFW_KEY_W)) {
|
||||||
if (playerActor == null) 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))));
|
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 (input.keyPressed(GLFW_KEY_S)) {
|
||||||
if (playerActor == null) 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))));
|
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 (input.keyPressed(GLFW_KEY_A)) {
|
||||||
if (playerActor == null) 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))));
|
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 (input.keyPressed(GLFW_KEY_D)) {
|
||||||
if (playerActor == null) 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))));
|
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 (input.keyPressed(GLFW_KEY_SPACE)) {
|
||||||
if (playerActor == null) camera.MoveUp(MovementDist);
|
if (playerActor == null) camera.MoveUp(MovementDist);
|
||||||
|
|
||||||
|
}
|
||||||
|
if (playerActor != null) {
|
||||||
|
RigidPhysicsController physicsController = (RigidPhysicsController) playerActor.GetPhysicsController();
|
||||||
|
RigidBody body = RigidBody.RigidBodyRegister.get(physicsController.RigidBodyID);
|
||||||
|
if (body != null && body.Grounded) {
|
||||||
|
Jumps = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (input.keySinglePress(GLFW_KEY_SPACE)) {
|
if (input.keySinglePress(GLFW_KEY_SPACE)) {
|
||||||
// camera.MoveUp(MovementDist);
|
// camera.MoveUp(MovementDist);
|
||||||
|
if (Jumps < MaxJumps) {
|
||||||
if (playerActor != null) playerActor.Move(new Vector3f(0, 5f, 0));
|
if (playerActor != null) playerActor.Move(new Vector3f(0, 5f, 0));
|
||||||
|
Jumps++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (input.keyPressed(GLFW_KEY_LEFT_SHIFT)) {
|
if (input.keyPressed(GLFW_KEY_LEFT_SHIFT)) {
|
||||||
if (playerActor == null) camera.MoveDown(MovementDist);
|
if (playerActor == null) camera.MoveDown(MovementDist);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue