Camera zoom + package gui
This commit is contained in:
parent
ab6939466d
commit
db073106cd
@ -1,5 +1,6 @@
|
||||
package engine;
|
||||
|
||||
import engine.gui.UIElement;
|
||||
import engine.input.*;
|
||||
import engine.math.*;
|
||||
import engine.object.*;
|
||||
@ -8,7 +9,6 @@ import engine.sound.*;
|
||||
import org.lwjgl.glfw.GLFWFramebufferSizeCallback;
|
||||
import org.lwjgl.glfw.GLFWVidMode;
|
||||
import org.lwjgl.opengl.GL;
|
||||
import org.lwjgl.system.CallbackI;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@ -22,6 +22,7 @@ public class Engine {
|
||||
private static long window;
|
||||
|
||||
private final List<ObjectGl> objectsGl;
|
||||
public final List<UIElement> uiElements;
|
||||
|
||||
private boolean running;
|
||||
|
||||
@ -30,6 +31,7 @@ public class Engine {
|
||||
|
||||
private float viewXPos;
|
||||
public Vector3f transformationView;
|
||||
private final Camera camera;
|
||||
|
||||
/**
|
||||
* Create the engine and initial attributes use .init() to start the engine
|
||||
@ -37,9 +39,10 @@ public class Engine {
|
||||
public Engine(int width, int height, float aspectRatio) {
|
||||
this.running = false;
|
||||
this.objectsGl = new ArrayList<>();
|
||||
this.uiElements = new ArrayList<>();
|
||||
this.width = width;
|
||||
this.height = height;
|
||||
ObjectGl.projection = Matrix4f.orthographic(-1000, 1000, -1000 * aspectRatio, 1000 * aspectRatio, 0.1f, 100.0f);
|
||||
this.camera = new Camera(1000, new Vector3f(4.0f, 3.0f), this);
|
||||
ObjectGl.view = Matrix4f.translate(new Vector3f(0.0f, 0.0f, 1.0f));
|
||||
this.viewXPos = 0.0f;
|
||||
this.transformationView = new Vector3f();
|
||||
@ -128,11 +131,15 @@ public class Engine {
|
||||
* @param obj ObjectGl to render
|
||||
*/
|
||||
public void add_objectGl(ObjectGl obj) {
|
||||
objectsGl.add(obj);
|
||||
this.objectsGl.add(obj);
|
||||
}
|
||||
|
||||
public void remove_objectGl(ObjectGl obj) {
|
||||
objectsGl.remove(obj);
|
||||
this.objectsGl.remove(obj);
|
||||
}
|
||||
|
||||
public void add_uiElement(UIElement uiElement) {
|
||||
this.uiElements.add(uiElement);
|
||||
}
|
||||
|
||||
public void translateView(Vector3f vec){
|
||||
@ -173,6 +180,10 @@ public class Engine {
|
||||
return window;
|
||||
}
|
||||
|
||||
public Camera getCamera(){
|
||||
return this.camera;
|
||||
}
|
||||
|
||||
public void setWindow(long window) {
|
||||
Engine.window = window;
|
||||
}
|
||||
@ -237,9 +248,9 @@ public class Engine {
|
||||
texTest.translate(new Vector3f(-1000.0f, (float) (-1000.0f * (3.0 / 4.0f) + 100.0f)));
|
||||
|
||||
UIElement fpsCounter = new UIElement(texTest.getObj(), engine);
|
||||
engine.add_uiElement(fpsCounter); // Pour être atteint par les modification du frustum
|
||||
|
||||
texTest.linkToUIElement(fpsCounter);
|
||||
|
||||
long timer = System.currentTimeMillis();
|
||||
long lastFrame;
|
||||
int frame = 0;
|
||||
@ -267,21 +278,23 @@ public class Engine {
|
||||
lastFrame = System.currentTimeMillis();
|
||||
// Game logic should fit here
|
||||
|
||||
if (Joystick1Present) {
|
||||
gamepad1.inputRefresh();
|
||||
// Check si le personnage a sauté
|
||||
if (jump.isButtonPressed()){
|
||||
// Le personnage saute
|
||||
System.out.println(" JE SAUTE ");
|
||||
}
|
||||
}
|
||||
if (Joystick1Present) {
|
||||
gamepad1.inputRefresh();
|
||||
// Check si le personnage a sauté
|
||||
if (jump.isButtonPressed()){
|
||||
// Le personnage saute
|
||||
System.out.println(" JE SAUTE ");
|
||||
}
|
||||
}
|
||||
|
||||
KeyboardInput.keyboardInput(zangief, speed);
|
||||
KeyboardInput.keyboardInput(zangief, speed);
|
||||
|
||||
engine.transformationView = new Vector3f((- zangief.getXPos() - engine.viewXPos) - 250.0f,0.0f,0.0f);
|
||||
engine.translateView(engine.transformationView);
|
||||
engine.transformationView = new Vector3f((- zangief.getXPos() - engine.viewXPos) - 250.0f,0.0f,0.0f);
|
||||
engine.translateView(engine.transformationView);
|
||||
|
||||
fpsCounter.update();
|
||||
fpsCounter.update();
|
||||
|
||||
engine.camera.zoom(1.001f);
|
||||
|
||||
/*
|
||||
********************
|
||||
@ -296,7 +309,7 @@ public class Engine {
|
||||
if (System.currentTimeMillis() - timer > 1000) {
|
||||
timer += 1000;
|
||||
System.out.println("FPS: " + frame);
|
||||
texTest.setNewText("FPS " + frame);
|
||||
texTest.setNewText("FPS: " + frame);
|
||||
frame = 0;
|
||||
}
|
||||
|
||||
|
@ -1,11 +1,11 @@
|
||||
package engine.object;
|
||||
package engine.gui;
|
||||
|
||||
import engine.Engine;
|
||||
import engine.math.Vector3f;
|
||||
import engine.object.ObjectGl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
public class UIElement {
|
||||
|
13
src/engine/gui/UIElementText.java
Normal file
13
src/engine/gui/UIElementText.java
Normal file
@ -0,0 +1,13 @@
|
||||
package engine.gui;
|
||||
|
||||
import engine.Engine;
|
||||
import engine.gui.UIElement;
|
||||
import engine.object.ObjectGl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class UIElementText extends UIElement {
|
||||
public UIElementText(List<ObjectGl> objs, Engine engine) {
|
||||
super(objs, engine);
|
||||
}
|
||||
}
|
27
src/engine/object/Camera.java
Normal file
27
src/engine/object/Camera.java
Normal file
@ -0,0 +1,27 @@
|
||||
package engine.object;
|
||||
|
||||
import engine.Engine;
|
||||
import engine.math.Matrix4f;
|
||||
import engine.math.Vector3f;
|
||||
|
||||
public class Camera {
|
||||
|
||||
private float dimension;
|
||||
private final Vector3f aspectRatio;
|
||||
private final Engine engine;
|
||||
|
||||
|
||||
public Camera(float dimension, Vector3f aspectRatio, Engine engine){
|
||||
this.dimension = dimension;
|
||||
this.aspectRatio = aspectRatio;
|
||||
this.engine = engine;
|
||||
float ar = aspectRatio.y / aspectRatio.x;
|
||||
ObjectGl.projection = Matrix4f.orthographic(-dimension, dimension, -dimension * ar, dimension * ar, 0.1f, 100.0f);
|
||||
}
|
||||
|
||||
public void zoom(float zoomFactor){
|
||||
this.dimension *= zoomFactor;
|
||||
float ar = aspectRatio.y / aspectRatio.x;
|
||||
ObjectGl.projection = Matrix4f.orthographic(-dimension, dimension, -dimension * ar, dimension * ar, 0.1f, 100.0f);
|
||||
}
|
||||
}
|
@ -1,6 +1,7 @@
|
||||
package engine.object;
|
||||
|
||||
import engine.Engine;
|
||||
import engine.gui.UIElement;
|
||||
import engine.math.Vector3f;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
Loading…
x
Reference in New Issue
Block a user