156 lines
5.1 KiB
Java
156 lines
5.1 KiB
Java
|
package engine;
|
|||
|
|
|||
|
import engine.gui.UIElementText;
|
|||
|
import engine.input.Button;
|
|||
|
import engine.input.GamepadInput;
|
|||
|
import engine.input.InputConst;
|
|||
|
import engine.input.KeyboardInput;
|
|||
|
import engine.math.Vector3f;
|
|||
|
import engine.object.ObjectGl;
|
|||
|
import engine.object.Sprite;
|
|||
|
import engine.sound.SoundBuffer;
|
|||
|
import engine.sound.SoundListener;
|
|||
|
import engine.sound.SoundManager;
|
|||
|
import engine.sound.SoundSource;
|
|||
|
|
|||
|
import java.util.ArrayList;
|
|||
|
import java.util.List;
|
|||
|
|
|||
|
import static org.lwjgl.glfw.GLFW.GLFW_JOYSTICK_1;
|
|||
|
import static org.lwjgl.glfw.GLFW.glfwJoystickPresent;
|
|||
|
|
|||
|
public class TestEngine {
|
|||
|
|
|||
|
public static void main(String[] args) throws Exception {
|
|||
|
/*
|
|||
|
OpenAl TEST
|
|||
|
*/
|
|||
|
SoundManager soundManager = new SoundManager();
|
|||
|
soundManager.init();
|
|||
|
|
|||
|
SoundListener soundListener = new SoundListener();
|
|||
|
|
|||
|
soundManager.setListener(soundListener);
|
|||
|
|
|||
|
SoundBuffer jumpSoundBuffer = new SoundBuffer("sound/jump.ogg");
|
|||
|
SoundSource soundSource = new SoundSource(false, false);
|
|||
|
soundSource.setBuffer(jumpSoundBuffer.getBufferId());
|
|||
|
|
|||
|
soundManager.addSoundSource("jump", soundSource);
|
|||
|
// soundManager.playSoundSource("jump");
|
|||
|
|
|||
|
/*
|
|||
|
Engine Init
|
|||
|
*/
|
|||
|
Engine engine = new Engine(1280, 720, new Vector3f(4.0f, 3.0f));
|
|||
|
int speed = 10; //vitesse d<>placement Object
|
|||
|
engine.init();
|
|||
|
|
|||
|
// Add objects to render
|
|||
|
String path = "textures/zangief_sprite.png";
|
|||
|
String path2 = "textures/awesomeface.png";
|
|||
|
String pathToBG = "textures/background_beach.png";
|
|||
|
String pathToText = "textures/dejavu10x10_gs_tc.png";
|
|||
|
|
|||
|
ObjectGl zangief = new Sprite(10.0f, 10f, path, null);
|
|||
|
zangief.setTextureWrap(58, 0, 62, 84, ObjectGl.DEFAULT);
|
|||
|
engine.add_objectGl(zangief);
|
|||
|
zangief.translate(new Vector3f(-1000.0f, 200.0f, 0.0f));
|
|||
|
zangief.setColor(new Vector3f(1.0f, 1.0f, 1.0f));
|
|||
|
zangief.setShader("shaders/StylishShaders/BasicVert.glsl", "shaders/StylishShaders/FlashFrag.glsl");
|
|||
|
zangief.useTime = true;
|
|||
|
|
|||
|
//Create background
|
|||
|
ObjectGl background = new ObjectGl(0f,1f,1f,10f, pathToBG, null);
|
|||
|
background.setTextureWrap(0,0,621, 224, ObjectGl.DEFAULT);
|
|||
|
background.translate(new Vector3f(-3011.0f, 1400.0f, 1.0f));
|
|||
|
engine.add_objectGl(background);
|
|||
|
|
|||
|
// ObjectGl smiley = new Sprite(15.0f, 500.0f, path2, null);
|
|||
|
// UIElement uiElement = new UIElement(smiley, 0.0f, 1.0f, engine);
|
|||
|
// engine.add_uiElement(uiElement);
|
|||
|
|
|||
|
UIElementText uiTextTest = new UIElementText("Boulevard Combattant", 5.0f, 0.0f,1.0f, 25.0f, engine);
|
|||
|
engine.add_uiElement(uiTextTest);
|
|||
|
|
|||
|
// Text texTest = new Text("ABCDEFGHIJKLMNOPQRSTUVWYZ",20.0f, 10, engine);
|
|||
|
// texTest.show();
|
|||
|
// texTest.translate(new Vector3f(-1000.0f, (float) (-1000.0f * (3.0 / 4.0f) + 100.0f)));
|
|||
|
|
|||
|
long timer = System.currentTimeMillis();
|
|||
|
long lastFrame;
|
|||
|
int frame = 0;
|
|||
|
boolean nextFrame = false;
|
|||
|
boolean Joystick1Present = glfwJoystickPresent(GLFW_JOYSTICK_1);
|
|||
|
|
|||
|
/*
|
|||
|
* Cr<EFBFBD>ation des manettes / action
|
|||
|
*/
|
|||
|
|
|||
|
GamepadInput gamepad1 = null;
|
|||
|
Button zoom = null;
|
|||
|
Button dezoom = null;
|
|||
|
|
|||
|
if (Joystick1Present){
|
|||
|
gamepad1 = new GamepadInput(GLFW_JOYSTICK_1);
|
|||
|
gamepad1.inputRefresh();
|
|||
|
List<Integer> listZoomPlus = new ArrayList<>();
|
|||
|
listZoomPlus.add(InputConst.buttonA);
|
|||
|
List<Integer> listZoomMinus = new ArrayList<>();
|
|||
|
listZoomMinus.add(InputConst.buttonB);
|
|||
|
zoom = new Button("zoom", listZoomPlus, new ArrayList<>(), gamepad1);
|
|||
|
dezoom = new Button("dezoom", listZoomMinus, new ArrayList<>(), gamepad1);
|
|||
|
}
|
|||
|
|
|||
|
engine.translateView(new Vector3f(0.0f, -125.0f, 0.0f));
|
|||
|
|
|||
|
while (engine.isRunning()) {
|
|||
|
lastFrame = System.currentTimeMillis();
|
|||
|
// Game logic should fit here
|
|||
|
|
|||
|
if (Joystick1Present) {
|
|||
|
gamepad1.inputRefresh();
|
|||
|
// Check si le personnage a sauté
|
|||
|
if (zoom.isButtonPressed()){
|
|||
|
// Le personnage saute
|
|||
|
engine.camera.zoom(1.001f);
|
|||
|
}if(dezoom.isButtonPressed()){
|
|||
|
engine.camera.zoom(0.999f);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
engine.cameraTrackingObjectGl(zangief, -250.0f);
|
|||
|
|
|||
|
KeyboardInput.keyboardInput(zangief, speed);
|
|||
|
|
|||
|
/*
|
|||
|
********************
|
|||
|
* essential part v *
|
|||
|
********************
|
|||
|
*/
|
|||
|
engine.update();
|
|||
|
engine.render();
|
|||
|
|
|||
|
frame++;
|
|||
|
|
|||
|
if (System.currentTimeMillis() - timer > 1000) {
|
|||
|
timer += 1000;
|
|||
|
System.out.println("FPS: " + frame);
|
|||
|
uiTextTest.setText("FPS: " + frame);
|
|||
|
frame = 0;
|
|||
|
}
|
|||
|
|
|||
|
// while (!nextFrame) {
|
|||
|
// nextFrame = System.currentTimeMillis() - lastFrame >= 16.66f;
|
|||
|
// }
|
|||
|
|
|||
|
nextFrame = false;
|
|||
|
if (engine.shouldClose()) engine.setRunning(false);
|
|||
|
}
|
|||
|
|
|||
|
soundManager.cleanup();
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
}
|