2021-06-05 21:11:29 +02:00
|
|
|
|
package engine;
|
|
|
|
|
|
|
|
|
|
import engine.gui.UIElementText;
|
2021-06-06 16:32:58 +02:00
|
|
|
|
import engine.input.*;
|
2021-06-05 21:11:29 +02:00
|
|
|
|
import engine.math.Vector3f;
|
|
|
|
|
import engine.object.ObjectGl;
|
|
|
|
|
import engine.object.Sprite;
|
2021-06-06 16:32:58 +02:00
|
|
|
|
import engine.sound.*;
|
2021-06-05 21:11:29 +02:00
|
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
2021-06-06 16:32:58 +02:00
|
|
|
|
import static org.lwjgl.glfw.GLFW.*;
|
2021-06-05 21:11:29 +02:00
|
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
|
2021-06-06 16:32:58 +02:00
|
|
|
|
ObjectGl zangief2 = new Sprite(9.0f, 10f, path, null);
|
|
|
|
|
zangief2.setTextureWrap(58, 0, 62, 84, ObjectGl.DEFAULT);
|
|
|
|
|
engine.add_objectGl(zangief2);
|
|
|
|
|
zangief2.translate(new Vector3f(1000.0f, 200.0f, 0.0f));
|
|
|
|
|
zangief2.flipTextureWrapH();
|
|
|
|
|
|
|
|
|
|
engine.setCameraTrackingBetweenTwoObjectGl(zangief, zangief2, 1000.0f);
|
|
|
|
|
|
2021-06-05 21:11:29 +02:00
|
|
|
|
//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);
|
|
|
|
|
|
2021-06-06 16:32:58 +02:00
|
|
|
|
UIElementText uiTextCoordP1 = new UIElementText("Boulevard Combattant", 7.0f, 0.0f,0.05f, 25.0f, engine);
|
|
|
|
|
engine.add_uiElement(uiTextCoordP1);
|
|
|
|
|
|
2021-06-05 21:11:29 +02:00
|
|
|
|
// 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();
|
|
|
|
|
}
|
|
|
|
|
|
2021-06-07 15:03:23 +02:00
|
|
|
|
List<Integer> listZoomPlus = new ArrayList<>();
|
|
|
|
|
listZoomPlus.add(InputConst.buttonA);
|
|
|
|
|
List<Integer> listZoomMinusKeyboard = new ArrayList<>();
|
|
|
|
|
listZoomMinusKeyboard.add(GLFW_KEY_R);
|
|
|
|
|
List<Integer> listZoomMinus = new ArrayList<>();
|
|
|
|
|
listZoomMinus.add(InputConst.buttonB);
|
|
|
|
|
List<Integer> listZoomPlusKeyboard = new ArrayList<>();
|
|
|
|
|
listZoomPlusKeyboard.add(GLFW_KEY_F);
|
|
|
|
|
zoom = new Button("zoom", listZoomPlus, listZoomPlusKeyboard, gamepad1);
|
|
|
|
|
dezoom = new Button("dezoom", listZoomMinus, listZoomMinusKeyboard, gamepad1);
|
2021-06-05 21:11:29 +02:00
|
|
|
|
engine.translateView(new Vector3f(0.0f, -125.0f, 0.0f));
|
|
|
|
|
|
2021-06-06 16:32:58 +02:00
|
|
|
|
while (engine.getRunning()) {
|
2021-06-05 21:11:29 +02:00
|
|
|
|
lastFrame = System.currentTimeMillis();
|
|
|
|
|
// Game logic should fit here
|
|
|
|
|
|
|
|
|
|
if (Joystick1Present) {
|
|
|
|
|
gamepad1.inputRefresh();
|
2021-06-07 15:03:23 +02:00
|
|
|
|
}
|
|
|
|
|
// Check si le personnage a sauté
|
|
|
|
|
if (zoom.isButtonPressed()){
|
|
|
|
|
// Le personnage saute
|
|
|
|
|
engine.getCamera().zoom(1.001f);
|
|
|
|
|
}if(dezoom.isButtonPressed()){
|
|
|
|
|
engine.getCamera().zoom(0.999f);
|
2021-06-05 21:11:29 +02:00
|
|
|
|
}
|
|
|
|
|
|
2021-06-06 16:32:58 +02:00
|
|
|
|
// engine.cameraTrackingObjectGl(zangief, -250.0f);
|
|
|
|
|
engine.cameraTrackingBetweenTwoObjectGl();
|
|
|
|
|
|
|
|
|
|
uiTextCoordP1.setText("X: " + zangief.getXPos() + " Y: " + zangief.getYPos());
|
2021-06-05 21:11:29 +02:00
|
|
|
|
|
|
|
|
|
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();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|