Selasa, 20 Desember 2011

Membuat Bangun 2D dengan LWJGL

Bangun 2D merupakan bangun yang memiliki 2 dimensi(baca 2D), yang mana bangun atau bentuk ini hanya memiliki 2 titik koordinat yang berbeda yaitu (x,y). Melalui titik x,y maka dapat dibentuk suatu bangun 2D yang dapat direpresentasikan sebagai berikut :

pada gambar diatas merupakan bentuk gambar 2D yang terbentuk melalui 4 titik sumbu x dan y, yang mana 4 titik tersebut adalah A, B, C, D sehingga membentuk bangun yang menyerupai kotak, tapi ya emang kotak...(hehehehe).

Oke dech langsung aja untuk yang udah mengerti cara bagaimana membangun bentuk 2D seperti pada ilustrasi diatas. kini kita bisa implementasikan pada bahasa pemrograman. nah untuk kali ini saya menggunakan bahasa pemrograman JAVA, dan yang perlu dilakukan adalah :

  1. Install netbeans atau eclipse, atau compiler java lain yang memungkinkan namun pada tutorial saya ini menggunakan netbeans.
  2. Kalau sudah punya compilernya, silahkan download library LWJGL disini.
  3. Buat projek baru di compiler anda.
  4. Buat pula main class.
Kalo sudah semua berikut source code nya pada main class :


package Persegi;

import org.lwjgl.Sys;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.GL11;

/**

*
*
* @author Wida Praponco
* @version 1.0
*/

public class persegi {
     /** Form Title */
 public static final String TITLE = "Persegi";

 /** Desired frame time */
 private static final int FRAMERATE = 60;

 /** Exit */
 private static boolean finished;

 /**
  * Application init
  * @param args Commandline args
  */
 public static void main(String[] args) {
   boolean fullscreen = (args.length == 1 && args[0].equals("-fullscreen"));

   try {
     init(fullscreen);
     run();
   } catch (Exception e) {
     e.printStackTrace(System.err);
     Sys.alert(TITLE, "An error occured and the game will exit.");
   } finally {
     cleanup();
   }
   System.exit(0);
 }

 /**
  * Initialise the game
  * @throws Exception if init fails
  */
 private static void init(boolean fullscreen) throws Exception {
   // Create a fullscreen window with 1:1 orthographic 2D projection (default)
   Display.setTitle(TITLE);
   Display.setFullscreen(fullscreen);
   Display.setVSyncEnabled(true);
   // Create default display of 640x480
   Display.create();
 }

 /**
  * Run
  */
 private static void run() {

   while (!finished) {
   
     Display.update();

     if (Display.isCloseRequested()) {

finished = true;

     }
     else if (Display.isActive()) {
       render();
       Display.sync(FRAMERATE);
     }
   
     else {
       try {
         Thread.sleep(100);
       } catch (InterruptedException e) {
       }

       if (Display.isVisible() || Display.isDirty()) {
         render();
       }
     }
   }
 }

 /**
  * Do any game-specific cleanup
  */
 private static void cleanup() {
   // Close the window
   Display.destroy();
 }
/**
  * Render
  */
 private static void render() {
   
   /*  First Square   */
   GL11.glMatrixMode(GL11.GL_PROJECTION);
   GL11.glLoadIdentity();
   GL11.glOrtho(0, Display.getDisplayMode().getWidth(), 0, Display.getDisplayMode().getHeight(), -1, 1);
   GL11.glMatrixMode(GL11.GL_MODELVIEW);
 
 
   // clear the screen
   GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_STENCIL_BUFFER_BIT);
 
   //create square 1
   GL11.glPushMatrix();
   GL11.glTranslatef(Display.getDesktopDisplayMode().getWidth()/3,Display.getDisplayMode().getHeight()/2 , 0.0f);
     GL11.glBegin(GL11.GL_QUADS);

       //representasi sesuai dengan ilustrasi pada blog diatas
       GL11.glVertex2i(-50, -50);//titik A(x,y)
       GL11.glVertex2i(50, -50);//titik B(x,y)
       GL11.glVertex2i(50, 50);//titik C(x,y)
       GL11.glVertex2i(-50, 50);//titik D(x,y)
     GL11.glEnd();
   GL11.glPopMatrix();

}
}

Berikut Screenshoo-nya :




Demikian tutorial kali ini...bila ada pertanyaan lebih lanjut silahkan komen aja di bawah ini


Thanks,


share

Tidak ada komentar:

Posting Komentar

komentar disini...