Advertisement
Blizzardo1

Blizzeta Sample

Aug 12th, 2014
287
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.50 KB | None | 0 0
  1. // Blizzeta Sample code
  2. // Copyright (c) 2014 Blizzeta Software and Gaming
  3.  
  4. package net.blizzeta.game.test;
  5.  
  6. import org.lwjgl.*;
  7. import org.lwjgl.input.Keyboard;
  8. import org.lwjgl.input.Mouse;
  9. import org.lwjgl.opengl.*;
  10.  
  11.  
  12. public class Game {
  13.     private int width = 1024, height = 768;
  14.     private long lastFPS, lastFrame, fps;
  15.     private float x = 400, y = 300, rotation = 0;
  16.     private float delta;
  17.     private boolean vSync;
  18.    
  19.     /**
  20.      * Start a new Game
  21.      */
  22.     public void start() {
  23.         try {
  24.             vSync = true;
  25.             Display.setVSyncEnabled(vSync);
  26.             setDisplayMode(width, height, false);
  27.             Display.create();
  28.         } catch (LWJGLException e) {
  29.             e.printStackTrace(System.out);
  30.             System.exit(0);
  31.         }
  32.        
  33.         initGL();
  34.         getDelta();
  35.         lastFPS = getTime();
  36.        
  37.         while(!Display.isCloseRequested()){
  38.             update(getDelta());
  39.         }
  40.         destroy();
  41.     }
  42.    
  43.     private void setDisplayMode(int width, int height, boolean fullscreen) {
  44.         DisplayMode dspm = Display.getDisplayMode();
  45.         if((dspm.getWidth() == width) && (dspm.getHeight() == height) && Display.isFullscreen()) {
  46.             return;
  47.         }
  48.        
  49.         try {
  50.             DisplayMode targetMode = null;
  51.             if(fullscreen) {
  52.                 DisplayMode[] modes = Display.getAvailableDisplayModes();
  53.                 int freq = 0;
  54.                
  55.                 for(int i = 0; i < modes.length; i++) {
  56.                     DisplayMode current = modes[i];
  57.                    
  58.                     if((current.getWidth() == width) && (current.getHeight() == height )) {
  59.                         if((targetMode == null) || (current.getFrequency() >= freq)) {
  60.                             if((targetMode == null) || (current.getBitsPerPixel() > targetMode.getBitsPerPixel())) {
  61.                                 targetMode = current;
  62.                                 freq = targetMode.getFrequency();
  63.                             }
  64.                         }
  65.                         DisplayMode dspm2 = Display.getDesktopDisplayMode();
  66.                         if((current.getBitsPerPixel() == dspm2.getBitsPerPixel()) && (current.getFrequency() == dspm.getFrequency())) {
  67.                             targetMode = current;
  68.                             break;
  69.                         }
  70.                     }
  71.                 }
  72.             } else {
  73.                 targetMode = new DisplayMode(width, height);
  74.             }
  75.            
  76.             if(targetMode == null) {
  77.                 displayConsoleMessage(String.format("Failed to find value mode: %dx%d fs=%s", width, height, fullscreen));
  78.                 return;
  79.             }
  80.             Display.setDisplayMode(targetMode);
  81.             Display.setFullscreen(fullscreen);
  82.         } catch (LWJGLException e) {
  83.             e.printStackTrace(System.out);
  84.             displayConsoleMessage(String.format("Unable to setup mode %dx%d fullscreen=%s",width, height, fullscreen));
  85.         }
  86.     }
  87.    
  88.     /**
  89.      * Prints out to the console
  90.      * @param input - The message
  91.      */
  92.     private void displayConsoleMessage(String input) {
  93.         System.out.println(input);
  94.     }
  95.    
  96.     /**
  97.      * Updates the FPS
  98.      */
  99.     public void updateFPS() {
  100.         if(getTime() - lastFPS > 1000) {
  101.             Display.setTitle(String.format("FPS: %d", fps));
  102.             fps = 0;
  103.             lastFPS += 1000;
  104.         }
  105.         fps++;
  106.     }
  107.    
  108.     /**
  109.      * Get the time in milliseconds
  110.      * @return The System's time in milliseconds
  111.      */
  112.     private long getTime() {
  113.         return (Sys.getTime() * 1000) / Sys.getTimerResolution();
  114.     }
  115.    
  116.     private int getDelta() {
  117.         long time = getTime();
  118.         int delta = (int)(time - lastFrame);
  119.         lastFrame = time;
  120.         this.delta = delta;
  121.         return delta;
  122.     }
  123.    
  124.     private boolean down(int key) {
  125.         return Keyboard.isKeyDown(key);
  126.     }
  127.    
  128.     /**
  129.      * Searches for a keypress
  130.      */
  131.     public void pollInput() {
  132.        
  133.         // Left Button
  134.         if(Mouse.isButtonDown(0))
  135.         {
  136.             int x = Mouse.getX();
  137.             int y = Mouse.getY();
  138.             displayConsoleMessage(String.format("MOUSE DOWN @ X: %d Y: %d", x, y));
  139.         }
  140.        
  141.         if(Keyboard.isKeyDown(Keyboard.KEY_SPACE))
  142.         {
  143.             displayConsoleMessage("SPACE PRESSED");
  144.         }
  145.         int w = Keyboard.KEY_W;
  146.         int a = Keyboard.KEY_A;
  147.         int s = Keyboard.KEY_S;
  148.         int d = Keyboard.KEY_D;
  149.        
  150.         int ra = Keyboard.KEY_RIGHT;
  151.         int la = Keyboard.KEY_LEFT;
  152.         int ua = Keyboard.KEY_UP;
  153.         int da = Keyboard.KEY_DOWN;
  154.        
  155.         // Forward Key
  156.         if(down(w)){
  157.             y += 0.35f * delta;
  158.         }
  159.            
  160.         // Left Key
  161.         if(down(a)){
  162.             x -= 0.35f * delta;
  163.         }
  164.        
  165.         // Down Key
  166.         if(down(s)) {
  167.             y -= 0.35f * delta;
  168.         }
  169.        
  170.         // Right Key
  171.         if(down(d)) {
  172.             x += 0.35f * delta;
  173.         }
  174.        
  175.         // Up Arrow Key
  176.         if(down(ua)) {
  177.            
  178.         }
  179.        
  180.         // Left Arrow Key
  181.         if(down(la)) {
  182.        
  183.         }
  184.        
  185.         // Down Arrow Key
  186.         if(down(da)) {
  187.            
  188.         }
  189.        
  190.         // Right Arrow Key
  191.         if(down(ra)) {
  192.            
  193.         }
  194.     }
  195.    
  196.     /**
  197.      * Destroys the game
  198.      */
  199.     public void destroy() {
  200.         Display.destroy();
  201.     }
  202.    
  203.     /**
  204.      * Updates the frames and searches for keypresses
  205.      */
  206.     public void update(int delta) {
  207.        
  208.         rotation+= 0.15f * delta;
  209.        
  210.         pollInput();
  211.        
  212.         if(x < 0) x = 0;
  213.         if(x > width) x = width;
  214.         if(y < 0) y = 0;
  215.         if(y > height)  y = height;
  216.         updateFPS();
  217.        
  218.         renderGL();
  219.         Display.update();
  220.         Display.sync(60);
  221.     }
  222.    
  223.     private void initGL() {
  224.         GL11.glMatrixMode(GL11.GL_PROJECTION);
  225.         GL11.glLoadIdentity();
  226.         GL11.glOrtho(0, width, 0, height, 1, -1);
  227.         GL11.glMatrixMode(GL11.GL_MODELVIEW);
  228.     }
  229.    
  230.     private void renderGL() {
  231.         GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
  232.         GL11.glColor3f(0.5f, 0.5f, 1.0f);
  233.        
  234.         GL11.glPushMatrix();
  235.         GL11.glTranslatef(x, y, 0);
  236.         GL11.glRotatef(rotation, 0f, 0f, 1f);
  237.         GL11.glTranslatef(-x, -y, 0);
  238.        
  239.         GL11.glBegin(GL11.GL_QUADS);
  240.         GL11.glVertex2f(x - 50, y - 50);
  241.         GL11.glVertex2f(x + 150, y);
  242.         GL11.glVertex2f(x + 150, y + 150);
  243.         GL11.glVertex2f(x + 150, y + 150);
  244.        
  245.         GL11.glEnd();
  246.         GL11.glPopMatrix();
  247.     }
  248.    
  249.     /**
  250.      * MAIN Function. Without this, we can't live!
  251.      * @param args
  252.      */
  253.     public static void main(String[] args) {
  254.         // Initialize a new Game, then start it up.
  255.         Game g = new Game();
  256.         g.start();
  257.        
  258.     }
  259.  
  260. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement