here is the code
import net.java.games.jogl.*;
import java.awt.event.*;
import javax.imageio.*;
import java.io.*;
import java.awt.*;
import javax.swing.JFrame;
import javax.imageio.ImageIO;
import java.lang.*;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.net.URL;
/**
* For our purposes only two of the GLEventListeners matter.
* Those would be init() and display().
*/
public class SecondGLEventListener implements GLEventListener, KeyListener {
int heroXPosition=100,heroYPosition=100;
private int texture;
final int TILE_SIZE=32;
final int WORLD_SIZEX=12;
final int WORLD_SIZEY=12;
GL gl;
GLU glu;
GLCanvas glc;
boolean left;
boolean right;
boolean up;
boolean down;
public void setglcanvas(GLCanvas glc)
{
this.glc=glc;
}
public void init(GLDrawable gld) {
gl = gld.getGL();
glu = gld.getGLU();
gl.glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
gl.glViewport(0, 0, 1024, 768); //sets visible area of screen
gl.glMatrixMode(GL.GL_PROJECTION);
gl.glLoadIdentity();
glu.gluOrtho2D(0.0, 1024.0, 0.0, 768.0); //sets coordinate system
}
public void display(GLDrawable drawable) {
BufferedImage image,image2,image3;
gl.glClear (GL.GL_COLOR_BUFFER_BIT);
try
{
image = ImageIO.read(new BufferedInputStream(this.getClass().getClassLoader().getResourceAsStream ("tile1.gif")));
image2 = ImageIO.read(new BufferedInputStream(this.getClass().getClassLoader().getResourceAsStream ("tile2.gif")));
image3 = ImageIO.read(new BufferedInputStream(this.getClass().getClassLoader().getResourceAsStream ("moveobject.gif")));
ImageUtils utils;
ImageUtils.readPixels(gl, 0, 0, 1, 1, image);
ImageUtils.readPixels(gl, 0, 0, 1, 1, image2);
ImageUtils.readPixels(gl, 0, 0, 1, 1, image3);
char map[][] = {
{2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},
{2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2},
{2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2},
{2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2},
{2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2},
{2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2},
{2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2},
{2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2},
{2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2},
{2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2},
{2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2},
{2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2}};
int tile;
int x;
int y;
for (y = 0; y < WORLD_SIZEY; y++)
{
for (x = 0; x < WORLD_SIZEX; x++)
{
tile = map[y][x];
gl.glRasterPos2i (32*x,32*y);
if(tile==2)
ImageUtils.drawPixels(gl,image);
if(tile==1)
ImageUtils.drawPixels(gl,image2);
}
}
gl.glRasterPos2i (heroXPosition,heroYPosition);
ImageUtils.drawPixels(gl,image3);
GL gl = drawable.getGL();
gl.glEnd();
gl.glFlush();
}
catch(IOException e)
{
//nothing
}
if(left) heroXPosition-=10;
if(right) heroXPosition+=10;
if(up) heroYPosition+=10;
if(down) heroYPosition-=10;
}
public void reshape(
GLDrawable drawable,
int x,
int y,
int width,
int height
) {}
public void displayChanged(
GLDrawable drawable,
boolean modeChanged,
boolean deviceChanged
) {}
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode() == KeyEvent.VK_LEFT) left = true;
if(e.getKeyCode() == KeyEvent.VK_RIGHT) right= true;
if(e.getKeyCode() == KeyEvent.VK_UP) up = true;
if(e.getKeyCode() == KeyEvent.VK_DOWN) down = true;
}
public void keyReleased(KeyEvent e)
{
if(e.getKeyCode() == KeyEvent.VK_LEFT) left = false;
if(e.getKeyCode() == KeyEvent.VK_RIGHT) right= false;
if(e.getKeyCode() == KeyEvent.VK_UP) up = false;
if(e.getKeyCode() == KeyEvent.VK_DOWN) down = false;
}
public void keyTyped(KeyEvent e)
{
}
}