Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Blizzeta Sample code
- // Copyright (c) 2014 Blizzeta Software and Gaming
- package net.blizzeta.game.test;
- import org.lwjgl.*;
- import org.lwjgl.input.Keyboard;
- import org.lwjgl.input.Mouse;
- import org.lwjgl.opengl.*;
- public class Game {
- private int width = 1024, height = 768;
- private long lastFPS, lastFrame, fps;
- private float x = 400, y = 300, rotation = 0;
- private float delta;
- private boolean vSync;
- /**
- * Start a new Game
- */
- public void start() {
- try {
- vSync = true;
- Display.setVSyncEnabled(vSync);
- setDisplayMode(width, height, false);
- Display.create();
- } catch (LWJGLException e) {
- e.printStackTrace(System.out);
- System.exit(0);
- }
- initGL();
- getDelta();
- lastFPS = getTime();
- while(!Display.isCloseRequested()){
- update(getDelta());
- }
- destroy();
- }
- private void setDisplayMode(int width, int height, boolean fullscreen) {
- DisplayMode dspm = Display.getDisplayMode();
- if((dspm.getWidth() == width) && (dspm.getHeight() == height) && Display.isFullscreen()) {
- return;
- }
- try {
- DisplayMode targetMode = null;
- if(fullscreen) {
- DisplayMode[] modes = Display.getAvailableDisplayModes();
- int freq = 0;
- for(int i = 0; i < modes.length; i++) {
- DisplayMode current = modes[i];
- if((current.getWidth() == width) && (current.getHeight() == height )) {
- if((targetMode == null) || (current.getFrequency() >= freq)) {
- if((targetMode == null) || (current.getBitsPerPixel() > targetMode.getBitsPerPixel())) {
- targetMode = current;
- freq = targetMode.getFrequency();
- }
- }
- DisplayMode dspm2 = Display.getDesktopDisplayMode();
- if((current.getBitsPerPixel() == dspm2.getBitsPerPixel()) && (current.getFrequency() == dspm.getFrequency())) {
- targetMode = current;
- break;
- }
- }
- }
- } else {
- targetMode = new DisplayMode(width, height);
- }
- if(targetMode == null) {
- displayConsoleMessage(String.format("Failed to find value mode: %dx%d fs=%s", width, height, fullscreen));
- return;
- }
- Display.setDisplayMode(targetMode);
- Display.setFullscreen(fullscreen);
- } catch (LWJGLException e) {
- e.printStackTrace(System.out);
- displayConsoleMessage(String.format("Unable to setup mode %dx%d fullscreen=%s",width, height, fullscreen));
- }
- }
- /**
- * Prints out to the console
- * @param input - The message
- */
- private void displayConsoleMessage(String input) {
- System.out.println(input);
- }
- /**
- * Updates the FPS
- */
- public void updateFPS() {
- if(getTime() - lastFPS > 1000) {
- Display.setTitle(String.format("FPS: %d", fps));
- fps = 0;
- lastFPS += 1000;
- }
- fps++;
- }
- /**
- * Get the time in milliseconds
- * @return The System's time in milliseconds
- */
- private long getTime() {
- return (Sys.getTime() * 1000) / Sys.getTimerResolution();
- }
- private int getDelta() {
- long time = getTime();
- int delta = (int)(time - lastFrame);
- lastFrame = time;
- this.delta = delta;
- return delta;
- }
- private boolean down(int key) {
- return Keyboard.isKeyDown(key);
- }
- /**
- * Searches for a keypress
- */
- public void pollInput() {
- // Left Button
- if(Mouse.isButtonDown(0))
- {
- int x = Mouse.getX();
- int y = Mouse.getY();
- displayConsoleMessage(String.format("MOUSE DOWN @ X: %d Y: %d", x, y));
- }
- if(Keyboard.isKeyDown(Keyboard.KEY_SPACE))
- {
- displayConsoleMessage("SPACE PRESSED");
- }
- int w = Keyboard.KEY_W;
- int a = Keyboard.KEY_A;
- int s = Keyboard.KEY_S;
- int d = Keyboard.KEY_D;
- int ra = Keyboard.KEY_RIGHT;
- int la = Keyboard.KEY_LEFT;
- int ua = Keyboard.KEY_UP;
- int da = Keyboard.KEY_DOWN;
- // Forward Key
- if(down(w)){
- y += 0.35f * delta;
- }
- // Left Key
- if(down(a)){
- x -= 0.35f * delta;
- }
- // Down Key
- if(down(s)) {
- y -= 0.35f * delta;
- }
- // Right Key
- if(down(d)) {
- x += 0.35f * delta;
- }
- // Up Arrow Key
- if(down(ua)) {
- }
- // Left Arrow Key
- if(down(la)) {
- }
- // Down Arrow Key
- if(down(da)) {
- }
- // Right Arrow Key
- if(down(ra)) {
- }
- }
- /**
- * Destroys the game
- */
- public void destroy() {
- Display.destroy();
- }
- /**
- * Updates the frames and searches for keypresses
- */
- public void update(int delta) {
- rotation+= 0.15f * delta;
- pollInput();
- if(x < 0) x = 0;
- if(x > width) x = width;
- if(y < 0) y = 0;
- if(y > height) y = height;
- updateFPS();
- renderGL();
- Display.update();
- Display.sync(60);
- }
- private void initGL() {
- GL11.glMatrixMode(GL11.GL_PROJECTION);
- GL11.glLoadIdentity();
- GL11.glOrtho(0, width, 0, height, 1, -1);
- GL11.glMatrixMode(GL11.GL_MODELVIEW);
- }
- private void renderGL() {
- GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
- GL11.glColor3f(0.5f, 0.5f, 1.0f);
- GL11.glPushMatrix();
- GL11.glTranslatef(x, y, 0);
- GL11.glRotatef(rotation, 0f, 0f, 1f);
- GL11.glTranslatef(-x, -y, 0);
- GL11.glBegin(GL11.GL_QUADS);
- GL11.glVertex2f(x - 50, y - 50);
- GL11.glVertex2f(x + 150, y);
- GL11.glVertex2f(x + 150, y + 150);
- GL11.glVertex2f(x + 150, y + 150);
- GL11.glEnd();
- GL11.glPopMatrix();
- }
- /**
- * MAIN Function. Without this, we can't live!
- * @param args
- */
- public static void main(String[] args) {
- // Initialize a new Game, then start it up.
- Game g = new Game();
- g.start();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement