<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>GaanZa &#187; lwjgl</title>
	<atom:link href="http://www.gaanza.com/blog/tag/lwjgl/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.gaanza.com</link>
	<description></description>
	<lastBuildDate>Sat, 04 Sep 2010 07:55:44 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>2D Rain Effect</title>
		<link>http://www.gaanza.com/blog/2d-rain-effect/</link>
		<comments>http://www.gaanza.com/blog/2d-rain-effect/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 05:40:10 +0000</pubDate>
		<dc:creator>padam</dc:creator>
				<category><![CDATA[Slick 2D]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[opengl]]></category>
		<category><![CDATA[2d rain effect]]></category>
		<category><![CDATA[lwjgl]]></category>

		<guid isPermaLink="false">http://www.gaanza.com/?p=382</guid>
		<description><![CDATA[
Hola Everyone.
I am working on a level for 2d game where i needed to add a rain effects. I am using Slick 2D library for making my 2d game. Before i started working on making  2D rain effect , i discussed this topic on slick 2d forum for how to get started ? Here [...]]]></description>
			<content:encoded><![CDATA[<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.gaanza.com%2Fblog%2F2d-rain-effect%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p><strong>Hola Everyone.</strong><br />
I am working on a level for 2d game where i needed to add a rain effects. I am using Slick 2D library for making my 2d game. Before i started working on making  2D rain effect , i discussed this topic on slick 2d forum for how to get started ? Here is the <a href="http://slick.javaunlimited.net/viewtopic.php?p=13771#13771" target="_blank">forum thread</a>. You can check it out.<br />
So i wrote a simple code to create a rain effect:<br />
1)	Make a Rain Drop, i wrote a class for Rain Drop that extends Polygon class. Yes i m creating rain drops with polygons.<br />
2)	Create number of drops at random coordinates  and simulate it across the screen i.e make them fall. You can use wind factor also for providing bit more interesting.</p>
<p><a href="http://www.gaanza.com/wp-content/uploads/2010/03/rain1.png"><img class="alignnone size-full wp-image-388" title="rain" src="http://www.gaanza.com/wp-content/uploads/2010/03/rain1.png" alt="" width="599" height="768" /></a><br />
So this is the way i started.</p>
<p>Here is the Rain Drop class:</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="co2">import org.newdawn.slick.geom.Polygon;</span></p>
<p><span class="kw2">public</span> <span class="kw2">class</span> RainDrop <span class="kw2">extends</span> <a href="http://www.google.com/search?q=allinurl%3APolygon+java.sun.com&#038;bntl=1"><span class="kw3">Polygon</span></a><span class="br0">&#123;</span><br />
<span class="kw2">public</span> RainDrop<span class="br0">&#40;</span><span class="kw4">int</span> size<span class="br0">&#41;</span><span class="br0">&#123;</span><br />
super<span class="br0">&#40;</span><span class="br0">&#41;</span>;</p>
<p><span class="coMULTI">/** coordinates of vertices of polygon(rain drop) */</span><br />
<span class="kw2">this</span>.<span class="me1">addPoint</span><span class="br0">&#40;</span><span class="nu0">0</span>, <span class="nu0">0</span><span class="br0">&#41;</span>;<br />
<span class="kw2">this</span>.<span class="me1">addPoint</span><span class="br0">&#40;</span><span class="nu0">0</span>, size<span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></div>
</div>
<p>This is the main class where we are using rain drops and simulating it to create a simple rain effect, nothing fancy.</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="co2">import java.util.logging.Level;</span><br />
<span class="co2">import java.util.logging.Logger;</span><br />
<span class="co2">import org.newdawn.slick.AppGameContainer;</span><br />
<span class="co2">import org.newdawn.slick.BasicGame;</span><br />
<span class="co2">import org.newdawn.slick.Color;</span><br />
<span class="co2">import org.newdawn.slick.GameContainer;</span><br />
<span class="co2">import org.newdawn.slick.Graphics;</span><br />
<span class="co2">import org.newdawn.slick.Image;</span><br />
<span class="co2">import org.newdawn.slick.SlickException;</span></p>
<p><span class="kw2">public</span> <span class="kw2">class</span> Rainy <span class="kw2">extends</span> BasicGame<span class="br0">&#123;</span></p>
<p><span class="kw2">private</span> RainDrop<span class="br0">&#91;</span><span class="br0">&#93;</span> drops;<br />
<span class="kw2">private</span> <a href="http://www.google.com/search?q=allinurl%3AImage+java.sun.com&#038;bntl=1"><span class="kw3">Image</span></a> background;</p>
<p><span class="kw2">public</span> Rainy<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp;super<span class="br0">&#40;</span><span class="st0">&#8220;&#8221;</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span></p>
<p><span class="kw2">public</span> <span class="kw4">static</span> <span class="kw4">void</span> main<span class="br0">&#40;</span><a href="http://www.google.com/search?q=allinurl%3AString+java.sun.com&#038;bntl=1"><span class="kw3">String</span></a><span class="br0">&#91;</span><span class="br0">&#93;</span> args<span class="br0">&#41;</span><span class="br0">&#123;</span><br />
<span class="kw2">try</span> <span class="br0">&#123;</span><br />
AppGameContainer app = <span class="kw2">new</span> AppGameContainer<span class="br0">&#40;</span><span class="kw2">new</span> Rainy<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;<br />
app.<span class="me1">setDisplayMode</span><span class="br0">&#40;</span><span class="nu0">1024</span>, <span class="nu0">768</span>, <span class="kw2">true</span><span class="br0">&#41;</span>;<br />
app.<span class="me1">setTargetFrameRate</span><span class="br0">&#40;</span><span class="nu0">100</span><span class="br0">&#41;</span>;<br />
app.<span class="me1">setShowFPS</span><span class="br0">&#40;</span><span class="kw2">false</span><span class="br0">&#41;</span>;<br />
app.<span class="me1">start</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span> <span class="kw2">catch</span> <span class="br0">&#40;</span>SlickException ex<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
Logger.<span class="me1">getLogger</span><span class="br0">&#40;</span>Rainy.<span class="kw2">class</span>.<span class="me1">getName</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>.<span class="me1">log</span><span class="br0">&#40;</span>Level.<span class="me1">SEVERE</span>, <span class="kw2">null</span>, ex<span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></p>
<p>@Override<br />
<span class="kw2">public</span> <span class="kw4">void</span> init<span class="br0">&#40;</span>GameContainer gc<span class="br0">&#41;</span> <span class="kw2">throws</span> SlickException <span class="br0">&#123;</span><br />
background=<span class="kw2">new</span> <a href="http://www.google.com/search?q=allinurl%3AImage+java.sun.com&#038;bntl=1"><span class="kw3">Image</span></a><span class="br0">&#40;</span><span class="st0">&#8220;data/jungle.jpg&#8221;</span><span class="br0">&#41;</span>;</p>
<p><span class="coMULTI">/** creating 700 rain drops and placing it on random location across the screen */</span><br />
initializeRain<span class="br0">&#40;</span><span class="nu0">900</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span></p>
<p>@Override<br />
<span class="kw2">public</span> <span class="kw4">void</span> update<span class="br0">&#40;</span>GameContainer gc, <span class="kw4">int</span> delta<span class="br0">&#41;</span> <span class="kw2">throws</span> SlickException <span class="br0">&#123;</span></p>
<p><span class="kw1">for</span><span class="br0">&#40;</span><span class="kw4">int</span> i=<span class="nu0">0</span>;i&lt;drops.<span class="me1">length</span>-<span class="nu0">1</span>;i++<span class="br0">&#41;</span><span class="br0">&#123;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; drops<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">setY</span><span class="br0">&#40;</span>drops<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">getY</span><span class="br0">&#40;</span><span class="br0">&#41;</span>+<span class="nu0">4</span>.0f<span class="br0">&#41;</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; drops<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">setX</span><span class="br0">&#40;</span>drops<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">getX</span><span class="br0">&#40;</span><span class="br0">&#41;</span>-<span class="nu0">1</span>.0f<span class="br0">&#41;</span>;</p>
<p>&nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>drops<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">getY</span><span class="br0">&#40;</span><span class="br0">&#41;</span>&gt;<span class="nu0">768</span><span class="br0">&#41;</span><span class="br0">&#123;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;drops<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">setX</span><span class="br0">&#40;</span><span class="br0">&#40;</span>float<span class="br0">&#41;</span> <span class="br0">&#40;</span><span class="br0">&#40;</span><a href="http://www.google.com/search?q=allinurl%3AMath+java.sun.com&#038;bntl=1"><span class="kw3">Math</span></a>.<span class="me1">random</span><span class="br0">&#40;</span><span class="br0">&#41;</span> * <span class="nu0">2000</span><span class="br0">&#41;</span>+<span class="nu0">30</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;drops<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">setY</span><span class="br0">&#40;</span><span class="br0">&#40;</span>float<span class="br0">&#41;</span> <span class="br0">&#40;</span><span class="br0">&#40;</span><a href="http://www.google.com/search?q=allinurl%3AMath+java.sun.com&#038;bntl=1"><span class="kw3">Math</span></a>.<span class="me1">random</span><span class="br0">&#40;</span><span class="br0">&#41;</span> * <span class="nu0">5</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</p>
<p><span class="br0">&#125;</span></p>
<p><span class="br0">&#125;</span></p>
<p><span class="br0">&#125;</span></p>
<p><span class="kw2">public</span> <span class="kw4">void</span> render<span class="br0">&#40;</span>GameContainer gc, <a href="http://www.google.com/search?q=allinurl%3AGraphics+java.sun.com&#038;bntl=1"><span class="kw3">Graphics</span></a> g<span class="br0">&#41;</span> <span class="kw2">throws</span> SlickException <span class="br0">&#123;</span><br />
g.<span class="me1">drawImage</span><span class="br0">&#40;</span>background, <span class="nu0">0</span>, <span class="nu0">0</span><span class="br0">&#41;</span>;<br />
g.<span class="me1">setColor</span><span class="br0">&#40;</span><span class="kw2">new</span> <a href="http://www.google.com/search?q=allinurl%3AColor+java.sun.com&#038;bntl=1"><span class="kw3">Color</span></a><span class="br0">&#40;</span><span class="nu0">188</span>.0f,<span class="nu0">227</span>.0f,<span class="nu0">229</span>.0f,<span class="nu0">0</span>.3f<span class="br0">&#41;</span><span class="br0">&#41;</span>;<br />
<span class="kw1">for</span><span class="br0">&#40;</span><span class="kw4">int</span> i=<span class="nu0">0</span>;i&lt;drops.<span class="me1">length</span>-<span class="nu0">1</span>;i++<span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp;g.<span class="me1">draw</span><span class="br0">&#40;</span>drops<span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="coMULTI">/** creating rain drops */</span><br />
<span class="kw4">void</span> initializeRain<span class="br0">&#40;</span><span class="kw4">int</span> num_of_drops<span class="br0">&#41;</span><span class="br0">&#123;</span><br />
drops=<span class="kw2">new</span> RainDrop<span class="br0">&#91;</span>num_of_drops<span class="br0">&#93;</span>;<br />
<span class="kw1">for</span><span class="br0">&#40;</span><span class="kw4">int</span> i=<span class="nu0">0</span>;i&lt;drops.<span class="me1">length</span>-<span class="nu0">1</span>;i++<span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; drops<span class="br0">&#91;</span>i<span class="br0">&#93;</span>=<span class="kw2">new</span> RainDrop<span class="br0">&#40;</span><span class="br0">&#40;</span><span class="kw4">int</span><span class="br0">&#41;</span> <span class="br0">&#40;</span><a href="http://www.google.com/search?q=allinurl%3AMath+java.sun.com&#038;bntl=1"><span class="kw3">Math</span></a>.<span class="me1">random</span><span class="br0">&#40;</span><span class="br0">&#41;</span> * <span class="nu0">10</span> + <span class="nu0">4</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; drops<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">setX</span><span class="br0">&#40;</span><span class="br0">&#40;</span>float<span class="br0">&#41;</span> <span class="br0">&#40;</span><span class="br0">&#40;</span><a href="http://www.google.com/search?q=allinurl%3AMath+java.sun.com&#038;bntl=1"><span class="kw3">Math</span></a>.<span class="me1">random</span><span class="br0">&#40;</span><span class="br0">&#41;</span> * <span class="nu0">2000</span><span class="br0">&#41;</span>+<span class="nu0">30</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; drops<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">setY</span><span class="br0">&#40;</span><span class="br0">&#40;</span>float<span class="br0">&#41;</span> <span class="br0">&#40;</span><span class="br0">&#40;</span><a href="http://www.google.com/search?q=allinurl%3AMath+java.sun.com&#038;bntl=1"><span class="kw3">Math</span></a>.<span class="me1">random</span><span class="br0">&#40;</span><span class="br0">&#41;</span> * <span class="nu0">750</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="br0">&#125;</span></div>
</div>
<p>So what i am doing  :<br />
1)	initializeRain(int num_of_drops) takes an int parameter which denotes the number of rain drops. This function creates a number of rain drops(instance of raindrop class) and assigns the random x and y position to each rain drops.<br />
2)	Then we simply iterate the array of rain drops and translate them across the screen. When drops reaches the bottom of screen then we simply restore back to random initial starting postion. This keeps going on and gives the impression of rainy effect.</p>
<p>This is very simple 2d effect that i started with. You can write your own optimized version and can add more feature to give fancy impression like adding alpha values  for each rain drop etc.</p>
<p><strong>Gracias.</strong></p>
<p><a name="fb_share" type="box_count share_url="http://www.gaanza.com/blog/2d-rain-effect/"></a><br />
<script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" 
        type="text/javascript">
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gaanza.com/blog/2d-rain-effect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Loading image/Texture Mapping in LWJGL</title>
		<link>http://www.gaanza.com/blog/loading-imagetexture-mapping-in-lwjgl/</link>
		<comments>http://www.gaanza.com/blog/loading-imagetexture-mapping-in-lwjgl/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 15:35:40 +0000</pubDate>
		<dc:creator>padam</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[opengl]]></category>
		<category><![CDATA[loading image]]></category>
		<category><![CDATA[loading image/texture mapping in lwjgl]]></category>
		<category><![CDATA[lwjgl]]></category>
		<category><![CDATA[texture mapping]]></category>

		<guid isPermaLink="false">http://www.gaanza.com/blog/?p=318</guid>
		<description><![CDATA[

Hola everyone.
I am currently working on my own two game projects: one project is of mobile phone game and other is 2.5 or side-scrolling 3d game, not much sure. So for second project i am making an small engine that will be used to make 2.5D game or side scrolling 3d game, Just simple and [...]]]></description>
			<content:encoded><![CDATA[<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.gaanza.com%2Fblog%2Floading-imagetexture-mapping-in-lwjgl%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p><img class="alignnone size-full wp-image-323" title="box" src="http://www.gaanza.com/wp-content/uploads/2009/10/box.png" alt="box" width="550" height="400" /></p>
<p>Hola everyone.</p>
<p>I am currently working on my own two game projects: one project is of mobile phone game and other is 2.5 or side-scrolling 3d game, not much sure. So for second project i am making an small engine that will be used to make 2.5D game or side scrolling 3d game, Just simple and fun game. I have chosen LWJGL, which is a java binding for Opengl to make my game. So first thing i need to work on loading images.texture mapping in lwjgl. I found some pretty much useful tutorials and great help from lwjgl forums. But atlast i got something that i was looking for from the <a href="http://lwjgl.org/forum/index.php/topic,3073.0.html" target="_blank">forum</a>.</p>
<p>I came to know about slick-util which is free and open source lib to <strong>load images and play sounds</strong>. Its very easy to pick up and implement it. Its just worked flawlessly and smoothly for me. You can <a href="http://slick.cokeandcode.com/downloads/util/" target="_blank">download the slick-util from here</a>.<strong> PNG, GIF, JPG, TGA are supported and WAV, OGG, XM sounds are supported by slick-util.</strong></p>
<p>So here i&#8217;l show u how easily i loaded images and mapped to a 3D BOX. First u have to setup lwjgl and slick-util with netbeans. Yeah i am using netbeans to write my program. You <a href="http://www.gaanza.com/blog/setting-up-lwjgl-with-netbeans/" target="_blank">can see my post to setup lwjgl with netbeans</a>. Now we will set up slick-util, its a continuation to the steps that we did to setup lwjgl.</p>
<p><strong>Continued&#8230;</strong></p>
<p>Step 1: We just have to configure the project properties so that project can find the lib to compile and run.</p>
<p><img class="alignnone size-full wp-image-319" title="1" src="http://www.gaanza.com/wp-content/uploads/2009/10/1.png" alt="1" width="501" height="206" /></p>
<p><img class="alignnone size-full wp-image-320" title="2" src="http://www.gaanza.com/wp-content/uploads/2009/10/2.png" alt="2" width="462" height="254" /></p>
<p>Ok that was it. Now slick-util lib has been set up.Now first i&#8217;l show u how to load image and bind it , full source will be at the end.</p>
<p><strong>Texture texture;</strong></p>
<p>Texture is an interface having description of texture which will be loaded.</p>
<p><strong>texture = TextureLoader.getTexture(&#8220;PNG&#8221;, new FileInputStream(&#8220;Data/Crate.png&#8221;));</strong></p>
<p>now we are loading the texture using TextureLoader utility class. Just smooth and simple.</p>
<p><strong>texture.bind();</strong></p>
<p>Now we are binding the texture.</p>
<p>So thats what u need to load the image and map them to objects. Download this image to use it in this program.</p>
<p><img class="alignnone size-full wp-image-321" title="Crate" src="http://www.gaanza.com/wp-content/uploads/2009/10/Crate.png" alt="Crate" width="256" height="256" /></p>
<p><strong>Full Code:</strong></p>
<div class="codesnip-container" >
<div class="codesnip"><span class="coMULTI">/*<br />
&nbsp;* To change this template, choose Tools | Templates<br />
&nbsp;* and open the template in the editor.<br />
&nbsp;*/</span></p>
<p>package com.<span class="me1">gaanza</span>.<span class="me1">engine</span>.<span class="me1">test2</span>;</p>
<p><span class="co2">import java.io.FileInputStream;</span><br />
<span class="co2">import java.io.IOException;</span><br />
<span class="co2">import java.util.logging.Level;</span><br />
<span class="co2">import java.util.logging.Logger;</span><br />
<span class="co2">import org.lwjgl.LWJGLException;</span><br />
<span class="co2">import org.lwjgl.Sys;</span><br />
<span class="co2">import org.lwjgl.opengl.Display;</span><br />
<span class="co2">import org.lwjgl.opengl.DisplayMode;</span><br />
<span class="co2">import org.lwjgl.opengl.GL11;</span><br />
<span class="co2">import org.lwjgl.util.glu.GLU;</span><br />
<span class="co2">import org.newdawn.slick.opengl.Texture;</span><br />
<span class="co2">import org.newdawn.slick.opengl.TextureLoader;</span></p>
<p><span class="coMULTI">/**<br />
&nbsp;*<br />
&nbsp;* @author Java Guy<br />
&nbsp;*/</span><br />
<span class="kw2">public</span> <span class="kw2">class</span> EngineTest <span class="br0">&#123;</span></p>
<p>&nbsp; &nbsp; <span class="kw2">private</span> <span class="kw4">static</span> <span class="kw4">boolean</span> gameRunning=<span class="kw2">true</span>;<br />
&nbsp; &nbsp; <span class="kw2">private</span> <span class="kw4">static</span> <span class="kw4">int</span> targetWidth = <span class="nu0">800</span>;<br />
&nbsp; &nbsp; <span class="kw2">private</span> <span class="kw4">static</span> <span class="kw4">int</span> targetHeight = <span class="nu0">600</span>;</p>
<p>&nbsp; &nbsp; <span class="kw2">private</span> float xrot=<span class="nu0">0</span>.1f;<br />
&nbsp; &nbsp; <span class="kw2">private</span> float yrot=<span class="nu0">0</span>.1f;<br />
&nbsp; &nbsp; <span class="kw2">private</span> float zrot=<span class="nu0">0</span>.1f;</p>
<p>&nbsp; &nbsp; <span class="coMULTI">/** The texture that&#8217;s been loaded */</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">private</span> Texture texture;</p>
<p>&nbsp; &nbsp; <span class="kw2">public</span> <span class="kw4">static</span> <span class="kw4">void</span> main<span class="br0">&#40;</span><a href="http://www.google.com/search?q=allinurl%3AString+java.sun.com&#038;bntl=1"><span class="kw3">String</span></a><span class="br0">&#91;</span><span class="br0">&#93;</span> args<span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; EngineTest app=<span class="kw2">new</span> EngineTest<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; initDisplay<span class="br0">&#40;</span><span class="kw2">false</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; initGL<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; app.<span class="me1">init</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; app.<span class="me1">run</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; <span class="kw2">private</span> <span class="kw4">static</span> <span class="kw4">void</span> initDisplay<span class="br0">&#40;</span><span class="kw4">boolean</span> fullscreen<span class="br0">&#41;</span><span class="br0">&#123;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; DisplayMode chosenMode = <span class="kw2">null</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">try</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DisplayMode<span class="br0">&#91;</span><span class="br0">&#93;</span> modes = Display.<span class="me1">getAvailableDisplayModes</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw4">int</span> i=<span class="nu0">0</span>;i&lt;modes.<span class="me1">length</span>;i++<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="br0">&#40;</span>modes<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">getWidth</span><span class="br0">&#40;</span><span class="br0">&#41;</span> == targetWidth<span class="br0">&#41;</span> &amp;&amp; <span class="br0">&#40;</span>modes<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">getHeight</span><span class="br0">&#40;</span><span class="br0">&#41;</span> == targetHeight<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; chosenMode = modes<span class="br0">&#91;</span>i<span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">break</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw2">catch</span> <span class="br0">&#40;</span>LWJGLException e<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; Sys.<span class="me1">alert</span><span class="br0">&#40;</span><span class="st0">&#8220;Error&#8221;</span>, <span class="st0">&#8220;Unable to determine display modes.&#8221;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.google.com/search?q=allinurl%3ASystem+java.sun.com&#038;bntl=1"><span class="kw3">System</span></a>.<span class="me1">exit</span><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// at this point if we have no mode there was no appropriate, let the user know</span><br />
&nbsp; &nbsp; <span class="co1">// and give up</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>chosenMode == <span class="kw2">null</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Sys.<span class="me1">alert</span><span class="br0">&#40;</span><span class="st0">&#8220;Error&#8221;</span>, <span class="st0">&#8220;Unable to find appropriate display mode.&#8221;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.google.com/search?q=allinurl%3ASystem+java.sun.com&#038;bntl=1"><span class="kw3">System</span></a>.<span class="me1">exit</span><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">try</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Display.<span class="me1">setDisplayMode</span><span class="br0">&#40;</span>chosenMode<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Display.<span class="me1">setFullscreen</span><span class="br0">&#40;</span>fullscreen<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Display.<span class="me1">setTitle</span><span class="br0">&#40;</span><span class="st0">&#8220;LWJGL window&#8221;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Display.<span class="me1">create</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">catch</span> <span class="br0">&#40;</span>LWJGLException e<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Sys.<span class="me1">alert</span><span class="br0">&#40;</span><span class="st0">&#8220;Error&#8221;</span>,<span class="st0">&#8220;Unable to create display.&#8221;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.google.com/search?q=allinurl%3ASystem+java.sun.com&#038;bntl=1"><span class="kw3">System</span></a>.<span class="me1">exit</span><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p><span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; <span class="kw2">private</span> <span class="kw4">static</span> <span class="kw4">boolean</span> initGL<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glMatrixMode</span><span class="br0">&#40;</span>GL11.<span class="me1">GL_PROJECTION</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glLoadIdentity</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</p>
<p><span class="co1">//&nbsp; &nbsp; &nbsp; &nbsp; Calculate the aspect ratio of the window</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; GLU.<span class="me1">gluPerspective</span><span class="br0">&#40;</span><span class="nu0">45</span>.0f,<span class="br0">&#40;</span><span class="br0">&#40;</span>float<span class="br0">&#41;</span>targetWidth<span class="br0">&#41;</span>/<span class="br0">&#40;</span><span class="br0">&#40;</span>float<span class="br0">&#41;</span>targetHeight<span class="br0">&#41;</span>,<span class="nu0">0</span>.1f,<span class="nu0">100</span>.0f<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glMatrixMode</span><span class="br0">&#40;</span>GL11.<span class="me1">GL_MODELVIEW</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glLoadIdentity</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glEnable</span><span class="br0">&#40;</span>GL11.<span class="me1">GL_TEXTURE_2D</span><span class="br0">&#41;</span>;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Enable Texture Mapping ( NEW )</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glShadeModel</span><span class="br0">&#40;</span>GL11.<span class="me1">GL_SMOOTH</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glClearColor</span><span class="br0">&#40;</span><span class="nu0">0</span>.0f, <span class="nu0">0</span>.0f, <span class="nu0">0</span>.0f, <span class="nu0">0</span>.0f<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glClearDepth</span><span class="br0">&#40;</span><span class="nu0">1</span>.0f<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glEnable</span><span class="br0">&#40;</span>GL11.<span class="me1">GL_DEPTH_TEST</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glDepthFunc</span><span class="br0">&#40;</span>GL11.<span class="me1">GL_LEQUAL</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glHint</span><span class="br0">&#40;</span>GL11.<span class="me1">GL_PERSPECTIVE_CORRECTION_HINT</span>, GL11.<span class="me1">GL_NICEST</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">return</span> <span class="kw2">true</span>;<br />
&nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; <span class="kw2">private</span> <span class="kw4">void</span> init<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">try</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; texture = TextureLoader.<span class="me1">getTexture</span><span class="br0">&#40;</span><span class="st0">&#8220;PNG&#8221;</span>, <span class="kw2">new</span> <a href="http://www.google.com/search?q=allinurl%3AFileInputStream+java.sun.com&#038;bntl=1"><span class="kw3">FileInputStream</span></a><span class="br0">&#40;</span><span class="st0">&#8220;Data/grass.png&#8221;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw2">catch</span> <span class="br0">&#40;</span><a href="http://www.google.com/search?q=allinurl%3AIOException+java.sun.com&#038;bntl=1"><span class="kw3">IOException</span></a> ex<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Logger.<span class="me1">getLogger</span><span class="br0">&#40;</span>EngineTest.<span class="kw2">class</span>.<span class="me1">getName</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>.<span class="me1">log</span><span class="br0">&#40;</span>Level.<span class="me1">SEVERE</span>, <span class="kw2">null</span>, ex<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; <span class="kw2">private</span> <span class="kw4">void</span> run<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">while</span><span class="br0">&#40;</span>gameRunning<span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; update<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; render<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Display.<span class="me1">update</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// finally check if the user has requested that the display be</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// shutdown</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>Display.<span class="me1">isCloseRequested</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; gameRunning = <span class="kw2">false</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Display.<span class="me1">destroy</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.google.com/search?q=allinurl%3ASystem+java.sun.com&#038;bntl=1"><span class="kw3">System</span></a>.<span class="me1">exit</span><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; <span class="kw2">private</span> <span class="kw4">void</span> update<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; xrot+=<span class="nu0">0</span>.1f;<br />
&nbsp; &nbsp; &nbsp; &nbsp; yrot+=<span class="nu0">0</span>.1f;<br />
&nbsp; &nbsp; &nbsp; &nbsp; zrot+=<span class="nu0">0</span>.1f;<br />
&nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; <span class="kw2">private</span> <span class="kw4">void</span> render<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glClear</span><span class="br0">&#40;</span>GL11.<span class="me1">GL_COLOR_BUFFER_BIT</span>|GL11.<span class="me1">GL_DEPTH_BUFFER_BIT</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glLoadIdentity</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glTranslatef</span><span class="br0">&#40;</span><span class="nu0">0</span>.0f,<span class="nu0">0</span>.0f,-<span class="nu0">5</span>.0f<span class="br0">&#41;</span>;&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;<span class="co1">// Move Into The Screen 5 Units</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glRotatef</span><span class="br0">&#40;</span>xrot,<span class="nu0">1</span>.0f,<span class="nu0">0</span>.0f,<span class="nu0">0</span>.0f<span class="br0">&#41;</span>;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Rotate On The X Axis</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glRotatef</span><span class="br0">&#40;</span>yrot,<span class="nu0">0</span>.0f,<span class="nu0">1</span>.0f,<span class="nu0">0</span>.0f<span class="br0">&#41;</span>;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Rotate On The Y Axis</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glRotatef</span><span class="br0">&#40;</span>zrot,<span class="nu0">0</span>.0f,<span class="nu0">0</span>.0f,<span class="nu0">1</span>.0f<span class="br0">&#41;</span>;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Rotate On The Z Axis</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; texture.<span class="me1">bind</span><span class="br0">&#40;</span><span class="br0">&#41;</span>; <span class="co1">// or GL11.glBind(texture.getTextureID());</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glBegin</span><span class="br0">&#40;</span>GL11.<span class="me1">GL_QUADS</span><span class="br0">&#41;</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Front Face</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glTexCoord2f</span><span class="br0">&#40;</span><span class="nu0">0</span>.0f, <span class="nu0">0</span>.0f<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glVertex3f</span><span class="br0">&#40;</span>-<span class="nu0">1</span>.0f, -<span class="nu0">1</span>.0f,&nbsp; <span class="nu0">1</span>.0f<span class="br0">&#41;</span>;&nbsp; &nbsp;<span class="co1">// Bottom Left Of The Texture and Quad</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glTexCoord2f</span><span class="br0">&#40;</span><span class="nu0">1</span>.0f, <span class="nu0">0</span>.0f<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glVertex3f</span><span class="br0">&#40;</span> <span class="nu0">1</span>.0f, -<span class="nu0">1</span>.0f,&nbsp; <span class="nu0">1</span>.0f<span class="br0">&#41;</span>;&nbsp; &nbsp;<span class="co1">// Bottom Right Of The Texture and Quad</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glTexCoord2f</span><span class="br0">&#40;</span><span class="nu0">1</span>.0f, <span class="nu0">1</span>.0f<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glVertex3f</span><span class="br0">&#40;</span> <span class="nu0">1</span>.0f,&nbsp; <span class="nu0">1</span>.0f,&nbsp; <span class="nu0">1</span>.0f<span class="br0">&#41;</span>;&nbsp; &nbsp;<span class="co1">// Top Right Of The Texture and Quad</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glTexCoord2f</span><span class="br0">&#40;</span><span class="nu0">0</span>.0f, <span class="nu0">1</span>.0f<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glVertex3f</span><span class="br0">&#40;</span>-<span class="nu0">1</span>.0f,&nbsp; <span class="nu0">1</span>.0f,&nbsp; <span class="nu0">1</span>.0f<span class="br0">&#41;</span>;&nbsp; &nbsp;<span class="co1">// Top Left Of The Texture and Quad</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Back Face</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glTexCoord2f</span><span class="br0">&#40;</span><span class="nu0">1</span>.0f, <span class="nu0">0</span>.0f<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glVertex3f</span><span class="br0">&#40;</span>-<span class="nu0">1</span>.0f, -<span class="nu0">1</span>.0f, -<span class="nu0">1</span>.0f<span class="br0">&#41;</span>;&nbsp; &nbsp;<span class="co1">// Bottom Right Of The Texture and Quad</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glTexCoord2f</span><span class="br0">&#40;</span><span class="nu0">1</span>.0f, <span class="nu0">1</span>.0f<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glVertex3f</span><span class="br0">&#40;</span>-<span class="nu0">1</span>.0f,&nbsp; <span class="nu0">1</span>.0f, -<span class="nu0">1</span>.0f<span class="br0">&#41;</span>;&nbsp; &nbsp;<span class="co1">// Top Right Of The Texture and Quad</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glTexCoord2f</span><span class="br0">&#40;</span><span class="nu0">0</span>.0f, <span class="nu0">1</span>.0f<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glVertex3f</span><span class="br0">&#40;</span> <span class="nu0">1</span>.0f,&nbsp; <span class="nu0">1</span>.0f, -<span class="nu0">1</span>.0f<span class="br0">&#41;</span>;&nbsp; &nbsp;<span class="co1">// Top Left Of The Texture and Quad</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glTexCoord2f</span><span class="br0">&#40;</span><span class="nu0">0</span>.0f, <span class="nu0">0</span>.0f<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glVertex3f</span><span class="br0">&#40;</span> <span class="nu0">1</span>.0f, -<span class="nu0">1</span>.0f, -<span class="nu0">1</span>.0f<span class="br0">&#41;</span>;&nbsp; &nbsp;<span class="co1">// Bottom Left Of The Texture and Quad</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Top Face</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glTexCoord2f</span><span class="br0">&#40;</span><span class="nu0">0</span>.0f, <span class="nu0">1</span>.0f<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glVertex3f</span><span class="br0">&#40;</span>-<span class="nu0">1</span>.0f,&nbsp; <span class="nu0">1</span>.0f, -<span class="nu0">1</span>.0f<span class="br0">&#41;</span>;&nbsp; &nbsp;<span class="co1">// Top Left Of The Texture and Quad</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glTexCoord2f</span><span class="br0">&#40;</span><span class="nu0">0</span>.0f, <span class="nu0">0</span>.0f<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glVertex3f</span><span class="br0">&#40;</span>-<span class="nu0">1</span>.0f,&nbsp; <span class="nu0">1</span>.0f,&nbsp; <span class="nu0">1</span>.0f<span class="br0">&#41;</span>;&nbsp; &nbsp;<span class="co1">// Bottom Left Of The Texture and Quad</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glTexCoord2f</span><span class="br0">&#40;</span><span class="nu0">1</span>.0f, <span class="nu0">0</span>.0f<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glVertex3f</span><span class="br0">&#40;</span> <span class="nu0">1</span>.0f,&nbsp; <span class="nu0">1</span>.0f,&nbsp; <span class="nu0">1</span>.0f<span class="br0">&#41;</span>;&nbsp; &nbsp;<span class="co1">// Bottom Right Of The Texture and Quad</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glTexCoord2f</span><span class="br0">&#40;</span><span class="nu0">1</span>.0f, <span class="nu0">1</span>.0f<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glVertex3f</span><span class="br0">&#40;</span> <span class="nu0">1</span>.0f,&nbsp; <span class="nu0">1</span>.0f, -<span class="nu0">1</span>.0f<span class="br0">&#41;</span>;&nbsp; &nbsp;<span class="co1">// Top Right Of The Texture and Quad</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Bottom Face</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glTexCoord2f</span><span class="br0">&#40;</span><span class="nu0">1</span>.0f, <span class="nu0">1</span>.0f<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glVertex3f</span><span class="br0">&#40;</span>-<span class="nu0">1</span>.0f, -<span class="nu0">1</span>.0f, -<span class="nu0">1</span>.0f<span class="br0">&#41;</span>;&nbsp; &nbsp;<span class="co1">// Top Right Of The Texture and Quad</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glTexCoord2f</span><span class="br0">&#40;</span><span class="nu0">0</span>.0f, <span class="nu0">1</span>.0f<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glVertex3f</span><span class="br0">&#40;</span> <span class="nu0">1</span>.0f, -<span class="nu0">1</span>.0f, -<span class="nu0">1</span>.0f<span class="br0">&#41;</span>;&nbsp; &nbsp;<span class="co1">// Top Left Of The Texture and Quad</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glTexCoord2f</span><span class="br0">&#40;</span><span class="nu0">0</span>.0f, <span class="nu0">0</span>.0f<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glVertex3f</span><span class="br0">&#40;</span> <span class="nu0">1</span>.0f, -<span class="nu0">1</span>.0f,&nbsp; <span class="nu0">1</span>.0f<span class="br0">&#41;</span>;&nbsp; &nbsp;<span class="co1">// Bottom Left Of The Texture and Quad</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glTexCoord2f</span><span class="br0">&#40;</span><span class="nu0">1</span>.0f, <span class="nu0">0</span>.0f<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glVertex3f</span><span class="br0">&#40;</span>-<span class="nu0">1</span>.0f, -<span class="nu0">1</span>.0f,&nbsp; <span class="nu0">1</span>.0f<span class="br0">&#41;</span>;&nbsp; &nbsp;<span class="co1">// Bottom Right Of The Texture and Quad</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Right face</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glTexCoord2f</span><span class="br0">&#40;</span><span class="nu0">1</span>.0f, <span class="nu0">0</span>.0f<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glVertex3f</span><span class="br0">&#40;</span> <span class="nu0">1</span>.0f, -<span class="nu0">1</span>.0f, -<span class="nu0">1</span>.0f<span class="br0">&#41;</span>;&nbsp; &nbsp;<span class="co1">// Bottom Right Of The Texture and Quad</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glTexCoord2f</span><span class="br0">&#40;</span><span class="nu0">1</span>.0f, <span class="nu0">1</span>.0f<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glVertex3f</span><span class="br0">&#40;</span> <span class="nu0">1</span>.0f,&nbsp; <span class="nu0">1</span>.0f, -<span class="nu0">1</span>.0f<span class="br0">&#41;</span>;&nbsp; &nbsp;<span class="co1">// Top Right Of The Texture and Quad</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glTexCoord2f</span><span class="br0">&#40;</span><span class="nu0">0</span>.0f, <span class="nu0">1</span>.0f<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glVertex3f</span><span class="br0">&#40;</span> <span class="nu0">1</span>.0f,&nbsp; <span class="nu0">1</span>.0f,&nbsp; <span class="nu0">1</span>.0f<span class="br0">&#41;</span>;&nbsp; &nbsp;<span class="co1">// Top Left Of The Texture and Quad</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glTexCoord2f</span><span class="br0">&#40;</span><span class="nu0">0</span>.0f, <span class="nu0">0</span>.0f<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glVertex3f</span><span class="br0">&#40;</span> <span class="nu0">1</span>.0f, -<span class="nu0">1</span>.0f,&nbsp; <span class="nu0">1</span>.0f<span class="br0">&#41;</span>;&nbsp; &nbsp;<span class="co1">// Bottom Left Of The Texture and Quad</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Left Face</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glTexCoord2f</span><span class="br0">&#40;</span><span class="nu0">0</span>.0f, <span class="nu0">0</span>.0f<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glVertex3f</span><span class="br0">&#40;</span>-<span class="nu0">1</span>.0f, -<span class="nu0">1</span>.0f, -<span class="nu0">1</span>.0f<span class="br0">&#41;</span>;&nbsp; &nbsp;<span class="co1">// Bottom Left Of The Texture and Quad</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glTexCoord2f</span><span class="br0">&#40;</span><span class="nu0">1</span>.0f, <span class="nu0">0</span>.0f<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glVertex3f</span><span class="br0">&#40;</span>-<span class="nu0">1</span>.0f, -<span class="nu0">1</span>.0f,&nbsp; <span class="nu0">1</span>.0f<span class="br0">&#41;</span>;&nbsp; &nbsp;<span class="co1">// Bottom Right Of The Texture and Quad</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glTexCoord2f</span><span class="br0">&#40;</span><span class="nu0">1</span>.0f, <span class="nu0">1</span>.0f<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glVertex3f</span><span class="br0">&#40;</span>-<span class="nu0">1</span>.0f,&nbsp; <span class="nu0">1</span>.0f,&nbsp; <span class="nu0">1</span>.0f<span class="br0">&#41;</span>;&nbsp; &nbsp;<span class="co1">// Top Right Of The Texture and Quad</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glTexCoord2f</span><span class="br0">&#40;</span><span class="nu0">0</span>.0f, <span class="nu0">1</span>.0f<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glVertex3f</span><span class="br0">&#40;</span>-<span class="nu0">1</span>.0f,&nbsp; <span class="nu0">1</span>.0f, -<span class="nu0">1</span>.0f<span class="br0">&#41;</span>;&nbsp; &nbsp;<span class="co1">// Top Left Of The Texture and Quad</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; GL11.<span class="me1">glEnd</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></div>
</div>
<p><strong>Gracias.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gaanza.com/blog/loading-imagetexture-mapping-in-lwjgl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Setting Up LWJGL with Netbeans</title>
		<link>http://www.gaanza.com/blog/setting-up-lwjgl-with-netbeans/</link>
		<comments>http://www.gaanza.com/blog/setting-up-lwjgl-with-netbeans/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 04:41:05 +0000</pubDate>
		<dc:creator>padam</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[opengl]]></category>
		<category><![CDATA[lwjgl]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[setting up lwjgl with netbeans]]></category>

		<guid isPermaLink="false">http://www.gaanza.com/blog/?p=285</guid>
		<description><![CDATA[
On Forums, people keeps asking about setting up lwjgl library with netbeans. So here i am going to show the steps to do that.
STEP 1: Go to Tools-&#62; Libariries.Now create new library. Give it a name say &#8220;lwjgl21&#8243;.

STEP 2: Now we have to configure the library. Click the classpath tab, then click add jars, and [...]]]></description>
			<content:encoded><![CDATA[<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.gaanza.com%2Fblog%2Fsetting-up-lwjgl-with-netbeans%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p>On Forums, people keeps asking about setting up lwjgl library with netbeans. So here i am going to show the steps to do that.</p>
<p><strong>STEP 1: </strong>Go to Tools-&gt; Libariries.Now create new library. Give it a name say &#8220;lwjgl21&#8243;.</p>
<p><img class="alignnone size-full wp-image-286" title="step1" src="http://www.gaanza.com/wp-content/uploads/2009/09/step1.png" alt="step1" width="535" height="213" /></p>
<p><strong>STEP 2:</strong> Now we have to configure the library. Click the classpath tab, then click add jars, and add all the jars shown below:</p>
<p><img class="alignnone size-full wp-image-287" title="step2" src="http://www.gaanza.com/wp-content/uploads/2009/09/step2.png" alt="step2" width="534" height="406" /></p>
<p><strong>STEP 3:</strong> If u want to add java doc than click the javadoc tab, and then add the javadoc folder. Then finally click oK and lwjgl21 library that we have just created is done.</p>
<p><strong>STEP 4:</strong> Now create a empty java project.</p>
<p><img class="alignnone size-full wp-image-288" title="step3" src="http://www.gaanza.com/wp-content/uploads/2009/09/step3.png" alt="step3" width="305" height="144" /></p>
<p><strong>STEP 5:</strong> Now we have to set the properties so that our newly created project can find the lwjgl library and jar files. So Right-Click the project-&gt; Properties. Now check the image carefully and configure accordingly. So first select libraries on the categories section and then click compile tab, and then add jar file for compilation step. This step is very important so check image properly below.</p>
<p><img class="alignnone size-full wp-image-289" title="step4" src="http://www.gaanza.com/wp-content/uploads/2009/09/step4.png" alt="step4" width="578" height="189" /></p>
<p><strong>STEP 6:</strong> Okie now click run tab, and add the library that we had just created. Check the image very properly.</p>
<p><img class="alignnone size-full wp-image-294" title="step5" src="http://www.gaanza.com/wp-content/uploads/2009/09/step51.png" alt="step5" width="548" height="177" /></p>
<p><strong>STEP 7:</strong> Now the final step. We have to provide the argument so that project cud find the necessary dll files. So first select the Run at caregories section then go to vm-options. Check the image properly and follow.</p>
<p><img class="alignnone size-full wp-image-291" title="step6" src="http://www.gaanza.com/wp-content/uploads/2009/09/step6.png" alt="step6" width="565" height="207" /></p>
<p>Okie thats it. Now click ok. So you have just set up lwjgl with your netbeans ide. So now you can compile and run your lwjgl app. I am using netbeans ide 6.7.</p>
<p><strong>Gracias</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gaanza.com/blog/setting-up-lwjgl-with-netbeans/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Setting up Slick 2D with netbeans 6.5.1</title>
		<link>http://www.gaanza.com/blog/slick2d-netbeans/</link>
		<comments>http://www.gaanza.com/blog/slick2d-netbeans/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 16:22:59 +0000</pubDate>
		<dc:creator>padam</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[2D engine]]></category>
		<category><![CDATA[lwjgl]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[Slick 2D]]></category>
		<category><![CDATA[slick 2d with netbeans]]></category>

		<guid isPermaLink="false">http://www.gaanza.com/blog/?p=36</guid>
		<description><![CDATA[

Slick2D engine is a high performance 2d game library based on a LWJGL(Lightweight Java Game Library). You can see the current features of Slick2D in their site. Download the library from here.
You can check the games made in Slick2D engine http://www.cokeandcode.com/ and http://slick.cokeandcode.com/gallery.php.
Tutorials : There are good and easy to go tutorials for beginners.
Now download [...]]]></description>
			<content:encoded><![CDATA[<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.gaanza.com%2Fblog%2Fslick2d-netbeans%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p><a href="http://www.gaanza.com/wp-content/uploads/2009/06/slick2d_netbeans.png"><img class="alignnone size-medium wp-image-58" title="slick2d_netbeans" src="http://www.gaanza.com/wp-content/uploads/2009/06/slick2d_netbeans-300x150.png" alt="" width="300" height="150" /></a><br />
Slick2D engine is a high performance 2d game library based on a LWJGL(Lightweight Java Game Library). You can see the current <a href="http://slick.cokeandcode.com/static.php?page=features" target="_blank">features</a> of Slick2D in their <a href="http://slick.cokeandcode.com/index.php" target="_blank">site</a>. <a href="http://slick.cokeandcode.com/index.php" target="_blank">Download</a> the library from <a href="http://slick.cokeandcode.com/index.php" target="_blank">here</a>.<br />
You can check the games made in Slick2D engine <a href="http://www.cokeandcode.com/" target="_blank">http://www.cokeandcode.com/</a> and <a href="http://slick.cokeandcode.com/gallery.php" target="_blank">http://slick.cokeandcode.com/gallery.php</a>.</p>
<p><a href="http://slick.cokeandcode.com/wiki/doku.php?id=tutorials" target="_blank">Tutorials </a>: There are good and easy to go <a href="http://slick.cokeandcode.com/wiki/doku.php?id=tutorials" target="_blank">tutorials</a> for beginners.</p>
<p>Now download the library. So here i&#8217;ll be telling how to setup the library with netbeans 6.5.1 so that u can write compile and run slick games easily and fast. I am using Ubuntu 8.04(Hardy heron), steps are similar for setting up in windows.</p>
<p><span style="font-size: 180%;"><span style="font-weight: bold;">STEP 1:</span></span> Download the library and save it in some appropriate place.<br />
<span style="font-weight: bold; font-size: 180%;">STEP 2:</span> Open your Netbeans 6.5.1.<br />
<span style="font-weight: bold; font-size: 180%;">STEP 3:</span> Go to tool-&gt;libraries. Library Manager window will open. Click New Library. Give it a name Slick. Then click OK.</p>
<p><img class="alignnone size-full wp-image-38" title="screenshot-11" src="http://www.gaanza.com/wp-content/uploads/2009/06/screenshot-11.png" alt="screenshot-11" width="543" height="413" /></p>
<p><span style="font-weight: bold; font-size: 180%;">STEP 4:</span> Now click classpath tab. Click Add Jar/Folder. Browse the folder where u have saved Your slick library. Go to lib folder and add all the jar files except slick.jar. Click OK</p>
<p><img class="alignnone size-full wp-image-39" title="screenshot-2" src="http://www.gaanza.com/wp-content/uploads/2009/06/screenshot-2.png" alt="screenshot-2" width="536" height="414" /></p>
<p><span style="font-weight: bold; font-size: 180%;">STEP 5:</span> Click JavaDoc tab. Click add/zip floder. Browse ur slick folder and select javadoc folder and add it. So done. Click OK.</p>
<p><img class="alignnone size-full wp-image-40" title="screenshot-3" src="http://www.gaanza.com/wp-content/uploads/2009/06/screenshot-3.png" alt="screenshot-3" width="535" height="410" /></p>
<p><span style="font-weight: bold; font-size: 180%;">STEP 6:</span> Ok so your slick library has been created. Now few steps remaining to complete the full set up. Create a new java project called SlickTest. Now Right Click SlickTest project, then click properties. Project properties window will open up. At left side, under categories select Libraries. Now at right side click Compile tab. Now Click Add Jar/Folder. Browse ur slick folder, go to lib folder, select slick.jar and add it.</p>
<p><img class="alignnone size-full wp-image-41" title="screenshot-4" src="http://www.gaanza.com/wp-content/uploads/2009/06/screenshot-4.png" alt="screenshot-4" width="599" height="487" /></p>
<p><span style="font-weight: bold; font-size: 180%;">STEP 7:</span> Now click Run tab. Click Add Library. Add Library window will open up. From there select Slick library that we previously created. Then add it.</p>
<p><img class="alignnone size-full wp-image-42" title="screenshot-5" src="http://www.gaanza.com/wp-content/uploads/2009/06/screenshot-5.png" alt="screenshot-5" width="580" height="472" /></p>
<p><span style="font-weight: bold; font-size: 180%;">FINAL STEP 8 :</span> Now at left side select Run. At Right side, go to VM Options, there u have to provide the parameter/argument that will link lwjgl libraries to your application. So at VM Options textbox, For Ubuntu users write: -Djava.library.path=<span style="font-style: italic;">lwjgl library path</span> For Windows user write: -Djava.library.path=&#8221;<span style="font-style: italic;">lwjgl library path&#8221;. And Click Ok</span></p>
<p><span style="font-style: italic;"><span style="font-style: italic;">Thats it</span></span> Windows users have to put the path within double quotes. Here <span style="font-style: italic;">lwjgl library path</span> is the path to the location where .so files for ubuntu linux(liblwjgl.so, liblwjgl64.so, libodejava.so,libopenal.so etc) and .dll for windows(liblwjgl.dll, liblwjgl64.dll, libodejava.dll,libopenal.dll etc) are located<span style="font-style: italic;">.</span></p>
<p>For windows user .dll files comes with slick library but linux users have to <a href="http://www.lwjgl.org/download.php" target="_blank">download</a> the native .so lib files.</p>
<p>So now you are done and lets write a simple program for testing. This code will just create a window. Create a class called Test under the project that we had created.</p>
<p>package com.padam.testing;</p>
<p>import org.newdawn.slick.AppGameContainer;<br />
import org.newdawn.slick.BasicGame;<br />
import org.newdawn.slick.GameContainer;<br />
import org.newdawn.slick.Graphics;<br />
import org.newdawn.slick.SlickException;</p>
<p>/**<br />
*<br />
* @author padam<br />
*/<br />
public class Test extends BasicGame{</p>
<p>public Test(String name){<br />
super(name);<br />
}</p>
<p>public static void main(String[] args){<br />
try {<br />
AppGameContainer container = new AppGameContainer(new Test(&#8220;Game&#8221;));<br />
container.setDisplayMode(800,600,false);<br />
container.start();<br />
} catch (SlickException e) {<br />
e.printStackTrace();<br />
}<br />
}</p>
<p>@Override<br />
public void init(GameContainer gc) throws SlickException {</p>
<p>}</p>
<p>@Override<br />
public void update(GameContainer gc, int delta) throws SlickException {</p>
<p>}</p>
<p>public void render(GameContainer gc, Graphics g) throws SlickException {</p>
<p>}</p>
<p>}</p>
<p><span style="font-weight: bold; font-size: 180%;">NOTE:</span> <span style="font-style: italic; font-weight: bold;">Linux and Mac users must download the lwjgl library. Then browse the folder and go to native folder. There choose your native OS folder. That will be your lwjgl library path</span> <span style="font-style: italic; font-weight: bold;">thatt will go to VM Options parameter as specified on last step or you can copy the .so/native files to your convenient location and provide that path to VM Options parameter.</span><br />
<span style="font-style: italic; font-weight: bold;">Now after this just test the above code. You may get a runtime error saying:</span></p>
<p><span style="font-style: italic; color: #006600;">Exception in thread &#8220;main&#8221; java.lang.LinkageError: Version mismatch: jar version is &#8216;16&#8242;, native libary version is &#8216;17&#8242; </span><br />
<span style="font-style: italic; color: #006600;"> at org.lwjgl.Sys.(Sys.java:105) </span><br />
<span style="font-style: italic; color: #006600;"> at org.lwjgl.opengl.Display.(Display.java:128) </span><br />
<span style="font-style: italic; color: #006600;"> at org.newdawn.slick.AppGameContainer$1.run(AppGameContainer.java:39) </span><br />
<span style="font-style: italic; color: #006600;"> at java.security.AccessController.doPrivileged(Native Method) </span><br />
<span style="font-style: italic; color: #006600;"> at org.newdawn.slick.AppGameContainer.(AppGameContainer.java:36) </span><br />
<span style="font-style: italic; color: #006600;"> at com.padam.testing.Test.main(Test.java:26) </span><br />
<span style="font-style: italic; color: #006600;"> Java Result: 1 </span><br />
<span style="font-style: italic; color: #006600;"> BUILD SUCCESSFUL (total time: 1 second) </span></p>
<p><span style="font-style: italic; font-weight: bold;">Linux/Mac/Solaris might face this problem because lwjgl jar files that comes with slick might be of older version which won&#8217;t match with the new lwjgl native .so/native files that u have downloaded. This means that the lwjgl jar files and lwjgl native/ .so files doesn&#8217;t match. So what u have to do is browse lwjgl folder that u have downloaded and go to jar folder and copy all the jar files and paste/replace the old jar files in the lib folder located in slick folder or location of slick library.</span></p>
<p><span style="font-style: italic; font-weight: bold;">So Thats it. If u face any problem, comment it.</span></p>
<p><span style="font-weight: bold; font-size: 180%;">Gracias.</span></p>
<p><a name="fb_share" type="box_count share_url="http://www.gaanza.com/blog/slick2d-netbeans/"></a><br />
<script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" 
        type="text/javascript">
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gaanza.com/blog/slick2d-netbeans/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>
