rendered paste bodypackage Buchstaben;import java.awt.event.*;import javax.media.opengl.*;import javax.media.opengl.glu.*;import com.sun.opengl.util.Animator;import java.nio.*;public class JOGLEventListener implements GLEventListener, KeyListener { private final GLU glu = new GLU(); private Animator animator = null; private final int MAX_PARTICLES = 1000; private Particle particles[] = new Particle[MAX_PARTICLES]; private int[] textures = new int[1] ; private float a = 0.0f; private float b = 0.0f; private float j = 0.0f; private float o = 0.0f; private float g = 0.0f; private float l = 0.0f; /** * Called by the drawable immediately after the OpenGL context is * initialized for the first time. Can be used to perform one-time OpenGL * initialization such as setup of lights and display lists. * @param gLDrawable The GLDrawable object. */ public void init(GLAutoDrawable gld) { GL gl = gld.getGL(); gl.glEnable( GL.GL_BLEND ); gl.glEnable(GL.GL_TEXTURE_2D); gl.glGenTextures(1,textures, 0); gl.glBindTexture(GL.GL_TEXTURE_2D,textures[0]); gl.glTexParameteri( GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MAG_FILTER, GL.GL_LINEAR); gl.glTexParameteri( GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MIN_FILTER, GL.GL_LINEAR); ByteBuffer dest = null; byte[] data = getTextureData(); dest = ByteBuffer.allocateDirect(data.length); dest.order(ByteOrder.nativeOrder()); dest.put(data, 0, data.length); dest.rewind(); gl.glTexImage2D (GL.GL_TEXTURE_2D, 0, GL.GL_RGBA, 256, 256, 0, GL.GL_RGBA, GL.GL_UNSIGNED_BYTE, dest); gld.addKeyListener(this); } /** * Called by the drawable to initiate OpenGL rendering by the client. * After all GLEventListeners have been notified of a display event, the * drawable will swap its buffers if necessary. * @param gLDrawable The GLDrawable object. */ public void display(GLAutoDrawable gld) { GL gl = gld.getGL(); gl.glClear(GL.GL_COLOR_BUFFER_BIT|GL.GL_DEPTH_BUFFER_BIT); // Clear The Screen And The Depth Buffer gl.glDisable(GL.GL_DEPTH_TEST); gl.glColor3f(1.0f,0.0f,0.0f); gl.glEnable(GL.GL_BLEND ); //Blendmodus ein - fuer Texturen gl.glLoadIdentity(); gl.glTranslatef( -0.1f, 0.8f, -2.0f); for(int i=0; i<MAX_PARTICLES; i++) { Particle p = particles[i]; if (p == null) { p = particles[i] = createParticle(); break; } if (p.getLocation(Particle.LOCATION_Y) < -4.0f) p = particles[i] = createParticle(); p.setSpeed(Particle.SPEED_Y,p.getSpeed(Particle.SPEED_Y)-0.0004f); p.evolve(); gl.glBlendFunc(GL.GL_SRC_ALPHA,GL.GL_ONE); gl.glBegin(GL.GL_QUADS); gl.glTexCoord2f(0.0f,0.2f); gl.glVertex3f( p.getLocation(Particle.LOCATION_X), p.getLocation(Particle.LOCATION_Y)+1.2f, p.getLocation(Particle.LOCATION_Z)); gl.glTexCoord2f(0.0f,0.2f); gl.glVertex3f( p.getLocation(Particle.LOCATION_X), p.getLocation(Particle.LOCATION_Y)-0.4f, p.getLocation(Particle.LOCATION_Z)); gl.glTexCoord2f(1f,0.0f); gl.glVertex3f( p.getLocation(Particle.LOCATION_X), p.getLocation(Particle.LOCATION_Y)-0.4f, p.getLocation(Particle.LOCATION_Z)); gl.glTexCoord2f(3f,1f); gl.glVertex3f( p.getLocation(Particle.LOCATION_X)+0.8f, p.getLocation(Particle.LOCATION_Y)+0.4f, p.getLocation(Particle.LOCATION_Z)); gl.glEnd(); }//for End gl.glDisable( GL.GL_BLEND ); gl.glEnable(GL.GL_DEPTH_TEST); gl.glLoadIdentity(); //L gl.glTranslatef(0.5f,0.2f,-3.0f); gl.glRotatef(b,0.0f,1.0f,0.0f); gl.glBegin(GL.GL_QUADS); gl.glColor3f(1.0f,1.0f,0.0f); //Vorderseite //1 float faul = 0.2f; //Verschieben mithilfe des floats faul anstelle jeden wert neu zu schreiben... gl.glVertex3f(-faul+0.0f,0.6f,0.0f); gl.glVertex3f(-faul+0.0f,-0.4f,0.0f); gl.glColor3f(0.75f,1.0f,0.75f); gl.glVertex3f(-faul+0.2f,-0.4f,0.0f); gl.glVertex3f(-faul+0.2f,0.6f,0.0f); //2 gl.glVertex3f(-faul+0.2f,-0.4f,0.0f); gl.glVertex3f(-faul+0.2f,-0.2f,0.0f); gl.glColor3f(1.0f,1.0f,0.0f); gl.glVertex3f(-faul+0.4f,-0.2f,0.0f); gl.glVertex3f(-faul+0.4f,-0.4f,0.0f); //Rückseite //1 gl.glVertex3f(-faul+0.0f,0.6f,-0.2f); gl.glVertex3f(-faul+0.0f,-0.4f,-0.2f); gl.glColor3f(0.75f,1.0f,0.75f); gl.glVertex3f(-faul+0.2f,-0.4f,-0.2f); gl.glVertex3f(-faul+0.2f,0.6f,-0.2f); //2 gl.glVertex3f(-faul+0.2f,-0.4f,-0.2f); gl.glVertex3f(-faul+0.2f,-0.2f,-0.2f); gl.glColor3f(1.0f,1.0f,-0.2f); gl.glVertex3f(-faul+0.4f,-0.2f,-0.2f); gl.glVertex3f(-faul+0.4f,-0.4f,-0.2f); //Zwischenstücke //1 gl.glVertex3f(-faul+0.0f,0.6f,-0.2f); gl.glVertex3f(-faul+0.0f,0.6f,0.0f); gl.glColor3f(0.75f,1.0f,0.75f); gl.glVertex3f(-faul+0.2f,0.6f,0.0f); gl.glVertex3f(-faul+0.2f,0.6f,-0.2f); //2 gl.glVertex3f(-faul+0.2f,0.6f,-0.2f); gl.glVertex3f(-faul+0.2f,0.6f,0.0f); gl.glVertex3f(-faul+0.2f,-0.2f,0.0f); gl.glVertex3f(-faul+0.2f,-0.2f,-0.2f); //3 gl.glVertex3f(-faul+0.2f,-0.2f,-0.2f); gl.glVertex3f(-faul+0.2f,-0.2f,0.0f); gl.glColor3f(1.0f,1.0f,-0.2f); gl.glVertex3f(-faul+0.4f,-0.2f,0.0f); gl.glVertex3f(-faul+0.4f,-0.2f,-0.2f); //4 gl.glVertex3f(-faul+0.4f,-0.2f,-0.2f); gl.glVertex3f(-faul+0.4f,-0.2f,0.0f); gl.glVertex3f(-faul+0.4f,-0.4f,0.0f); gl.glVertex3f(-faul+0.4f,-0.4f,-0.2f); //5 gl.glVertex3f(-faul+0.4f,-0.4f,-0.2f); gl.glVertex3f(-faul+0.4f,-0.4f,0.0f); gl.glColor3f(0.75f,1.0f,0.75f); gl.glVertex3f(-faul+0.2f,-0.4f,0.0f); gl.glVertex3f(-faul+0.2f,-0.4f,-0.2f); //6 gl.glVertex3f(-faul+0.2f,-0.4f,-0.2f); gl.glVertex3f(-faul+0.2f,-0.4f,0.0f); gl.glColor3f(1.0f,1.0f,-0.2f); gl.glVertex3f(-faul+0.0f,-0.4f,0.0f); gl.glVertex3f(-faul+0.0f,-0.4f,-0.2f); //7 gl.glVertex3f(-faul+0.0f,-0.4f,-0.2f); gl.glVertex3f(-faul+0.0f,-0.4f,0.0f); gl.glVertex3f(-faul+0.0f,0.6f,0.0f); gl.glVertex3f(-faul+0.0f,0.6f,-0.2f); gl.glEnd(); //Form beenden b-=0.55f; //Rotationsgeschwindigkeit verringern gl.glFlush(); //S gl.glLoadIdentity(); // Reset The Current Modelview Matrix gl.glTranslatef(-0.5f,0.2f,-3.0f); //Nach links verschieben gl.glRotatef(a,0.0f,1.0f,0.0f); //an der Y-Achse rotieren lassen gl.glBegin(GL.GL_QUADS); //Vorderseite //1 gl.glVertex3f(-faul+0.0f,0.0f,0.0f); gl.glVertex3f(-faul+0.0f,-0.2f,0.0f); gl.glColor3f(0.75f,1.0f,0.75f); gl.glVertex3f(-faul+0.2f,-0.4f,0.0f); gl.glVertex3f(-faul+0.2f,-0.2f,0.0f); //2 gl.glVertex3f(-faul+0.2f,-0.4f,0.0f); gl.glVertex3f(-faul+0.2f,0.2f,0.0f); gl.glColor3f(1.0f,1.0f,0.0f); gl.glVertex3f(-faul+0.4f,0.0f,0.0f); gl.glVertex3f(-faul+0.4f,-0.2f,0.0f); //3 gl.glColor3f(0.75f,1.0f,0.75f); gl.glVertex3f(-faul+0.2f,0.0f,0.0f); gl.glVertex3f(-faul+0.2f,0.6f,0.0f); gl.glColor3f(1.0f,1.0f,0.0f); gl.glVertex3f(-faul+0.0f,0.4f,0.0f); gl.glVertex3f(-faul+0.0f,0.2f,0.0f); //4 gl.glColor3f(0.75f,1.0f,0.75f); gl.glVertex3f(-faul+0.2f,0.6f,0.0f); gl.glVertex3f(-faul+0.2f,0.4f,0.0f); gl.glColor3f(1.0f,1.0f,0.0f); gl.glVertex3f(-faul+0.4f,0.2f,0.0f); gl.glVertex3f(-faul+0.4f,0.4f,0.0f); //Rückseite //1 gl.glVertex3f(-faul+0.0f,0.0f,-0.2f); gl.glVertex3f(-faul+0.0f,-0.2f,-0.2f); gl.glColor3f(0.75f,1.0f,0.75f); gl.glVertex3f(-faul+0.2f,-0.4f,-0.2f); gl.glVertex3f(-faul+0.2f,-0.2f,-0.2f); //2 gl.glVertex3f(-faul+0.2f,-0.4f,-0.2f); gl.glVertex3f(-faul+0.2f,0.2f,-0.2f); gl.glColor3f(1.0f,1.0f,-0.2f); gl.glVertex3f(-faul+0.4f,0.0f,-0.2f); gl.glVertex3f(-faul+0.4f,-0.2f,-0.2f); //3 gl.glColor3f(0.75f,1.0f,0.75f); gl.glVertex3f(-faul+0.2f,0.0f,-0.2f); gl.glVertex3f(-faul+0.2f,0.6f,-0.2f); gl.glColor3f(1.0f,1.0f,-0.2f); gl.glVertex3f(-faul+0.0f,0.4f,-0.2f); gl.glVertex3f(-faul+0.0f,0.2f,-0.2f); //4 gl.glColor3f(0.75f,1.0f,0.75f); gl.glVertex3f(-faul+0.2f,0.6f,-0.2f); gl.glVertex3f(-faul+0.2f,0.4f,-0.2f); gl.glColor3f(1.0f,1.0f,-0.2f); gl.glVertex3f(-faul+0.4f,0.2f,-0.2f); gl.glVertex3f(-faul+0.4f,0.4f,-0.2f); //Zwischenstücke //1 gl.glVertex3f(-faul+0.0f,0.0f,0f); gl.glVertex3f(-faul+0.0f,0.0f,-0.2f); gl.glVertex3f(-faul+0.0f,-0.2f,-0.2f); gl.glVertex3f(-faul+0.0f,-0.2f,0f); //2 gl.glVertex3f(-faul+0.0f,-0.2f,-0.2f); gl.glVertex3f(-faul+0.0f,-0.2f,0f); gl.glColor3f(0.75f,1.0f,0.75f); gl.glVertex3f(-faul+0.2f,-0.4f,0f); gl.glVertex3f(-faul+0.2f,-0.4f,-0.2f); //3 gl.glVertex3f(-faul+0.2f,-0.4f,0f); gl.glVertex3f(-faul+0.2f,-0.4f,-0.2f); gl.glColor3f(1.0f,1.0f,-0.2f); gl.glVertex3f(-faul+0.4f,-0.2f,-0.2f); gl.glVertex3f(-faul+0.4f,-0.2f,0f); //4 gl.glVertex3f(-faul+0.4f,-0.2f,0f); gl.glVertex3f(-faul+0.4f,-0.2f,-0.2f); gl.glVertex3f(-faul+0.4f,0.0f,-0.2f); gl.glVertex3f(-faul+0.4f,0.0f,0f); //5 gl.glVertex3f(-faul+0.4f,0.0f,0f); gl.glVertex3f(-faul+0.4f,0.0f,-0.2f); gl.glColor3f(0.75f,1.0f,0.75f); gl.glVertex3f(-faul+0.2f,0.2f,-0.2f); gl.glVertex3f(-faul+0.2f,0.2f,0f); //6 gl.glVertex3f(-faul+0.2f,0.2f,0f); gl.glVertex3f(-faul+0.2f,0.2f,-0.2f); gl.glVertex3f(-faul+0.2f,0.4f,-0.2f); gl.glVertex3f(-faul+0.2f,0.4f,0f); //7 gl.glVertex3f(-faul+0.2f,0.4f,0f); gl.glVertex3f(-faul+0.2f,0.4f,-0.2f); gl.glColor3f(1.0f,1.0f,-0.2f); gl.glVertex3f(-faul+0.4f,0.2f,-0.2f); gl.glVertex3f(-faul+0.4f,0.2f,0f); //8 gl.glVertex3f(-faul+0.4f,0.2f,0f); gl.glVertex3f(-faul+0.4f,0.2f,-0.2f); gl.glVertex3f(-faul+0.4f,0.4f,-0.2f); gl.glVertex3f(-faul+0.4f,0.4f,0f); //9 gl.glVertex3f(-faul+0.4f,0.4f,0f); gl.glVertex3f(-faul+0.4f,0.4f,-0.2f); gl.glColor3f(0.75f,1.0f,0.75f); gl.glVertex3f(-faul+0.2f,0.6f,-0.2f); gl.glVertex3f(-faul+0.2f,0.6f,0f); //10 gl.glVertex3f(-faul+0.2f,0.6f,0f); gl.glVertex3f(-faul+0.2f,0.6f,-0.2f); gl.glColor3f(1.0f,1.0f,-0.2f); gl.glVertex3f(-faul+0.0f,0.4f,-0.2f); gl.glVertex3f(-faul+0.0f,0.4f,0f); //11 gl.glVertex3f(-faul+0.0f,0.4f,0f); gl.glVertex3f(-faul+0.0f,0.4f,-0.2f); gl.glVertex3f(-faul+0.0f,0.2f,-0.2f); gl.glVertex3f(-faul+0.0f,0.2f,0f); //12 gl.glVertex3f(-faul+0.0f,0.2f,0f); gl.glVertex3f(-faul+0.0f,0.2f,-0.2f); gl.glColor3f(0.75f,1.0f,0.75f); gl.glVertex3f(-faul+0.2f,0.0f,-0.2f); gl.glVertex3f(-faul+0.2f,0.0f,0f); //13 gl.glVertex3f(-faul+0.2f,0.0f,0f); gl.glVertex3f(-faul+0.2f,0.0f,-0.2f); gl.glVertex3f(-faul+0.2f,-0.2f,-0.2f); gl.glVertex3f(-faul+0.2f,-0.2f,0f); //14 gl.glVertex3f(-faul+0.2f,-0.2f,0f); gl.glVertex3f(-faul+0.2f,-0.2f,-0.2f); gl.glColor3f(1.0f,1.0f,-0.2f); gl.glVertex3f(-faul+0.0f,0.0f,-0.2f); gl.glVertex3f(-faul+0.0f,0.0f,0f); gl.glEnd(); a-=0.55f; //rotationsgeschwindigkeit verringern gl.glFlush(); //JOGL-Schriftzug gl.glLoadIdentity(); //reste VIEW gl.glTranslatef(-3.0f,-4.0f,-10.0f);//An den Achsen Bewegen gl.glRotatef(j,1.0f,0.0f,0.0f); //an der Achse rotieren lassen //J //1 gl.glBegin(GL.GL_QUADS); gl.glColor3f(1.0f,0.0f,1.0f); gl.glVertex3f(-0.4f,-0.2f,0.0f); gl.glVertex3f(-0.2f,-0.2f,0.0f); gl.glColor3f(0.0f,1.0f,1.0f); gl.glVertex3f(-0.2f,-0.4f,0.0f); gl.glVertex3f(-0.4f,-0.4f,0.0f); //2 gl.glVertex3f(-0.2f,-0.4f,0.0f); gl.glVertex3f(-0.4f,-0.4f,0.0f); gl.glVertex3f(-0.2f,-0.6f,0.0f); gl.glVertex3f(-0.0f,-0.6f,0.0f); //3 gl.glVertex3f(-0.0f,-0.6f,0.0f); gl.glVertex3f(-0.2f,-0.4f,0.0f); gl.glVertex3f(0.4f,-0.4f,0.0f); gl.glVertex3f(0.2f,-0.6f,0.0f); //4 gl.glVertex3f(0.2f,-0.4f,0.0f); gl.glVertex3f(0.4f,-0.4f,0.0f); gl.glColor3f(1.0f,0.0f,1.0f); gl.glVertex3f(0.4f,0.6f,0.0f); gl.glVertex3f(0.2f,0.6f,0.0f); gl.glEnd(); j-=0.5f; gl.glFlush(); //o gl.glLoadIdentity(); gl.glTranslatef(-1.5f,-4.0f,-10.0f); gl.glRotatef(o,1.0f,0.0f,0.0f); gl.glBegin(GL.GL_QUADS); //1 gl.glVertex3f(-0.2f,0.2f,0.0f); gl.glVertex3f(0.0f,0.4f,0.0f); gl.glVertex3f(0.0f,0.6f,0.0f); gl.glVertex3f(-0.2f,0.6f,0.0f); //2 gl.glVertex3f(0.2f,0.2f,0.0f); gl.glVertex3f(0.0f,0.4f,0.0f); gl.glVertex3f(0.0f,0.6f,0.0f); gl.glVertex3f(0.2f,0.6f,0.0f); //3 gl.glVertex3f(0.2f,0.6f,0.0f); gl.glVertex3f(0.4f,0.4f,0.0f); gl.glColor3f(0.0f,1.0f,1.0f); gl.glVertex3f(0.4f,-0.4f,0.0f); gl.glVertex3f(0.2f,-0.6f,0.0f); //4 gl.glVertex3f(0.2f,-0.2f,0.0f); gl.glVertex3f(0.2f,-0.6f,0.0f); gl.glVertex3f(0.0f,-0.6f,0.0f); gl.glVertex3f(0.0f,-0.4f,0.0f); //5 gl.glVertex3f(0.0f,-0.4f,0.0f); gl.glVertex3f(0.0f,-0.6f,0.0f); gl.glVertex3f(-0.2f,-0.6f,0.0f); gl.glVertex3f(-0.2f,-0.2f,0.0f); //6 gl.glVertex3f(-0.2f,-0.6f,0.0f); gl.glVertex3f(-0.4f,-0.4f,0.0f); gl.glColor3f(1.0f,0.0f,1.0f); gl.glVertex3f(-0.4f,0.4f,0.0f); gl.glVertex3f(-0.2f,0.6f,0.0f); gl.glEnd(); o-=0.5f; gl.glFlush(); //G gl.glLoadIdentity(); gl.glTranslatef(1.5f,-4.0f,-10.0f); gl.glRotatef(g,1.0f,0.0f,0.0f); gl.glBegin(GL.GL_QUADS); //1 gl.glVertex3f( 0.4f, 0.2f, 0.0f); gl.glVertex3f( 0.4f, 0.4f, 0.0f); gl.glVertex3f( 0.2f, 0.6f, 0.0f); gl.glVertex3f( 0.2f, 0.4f, 0.0f); //2 gl.glVertex3f( 0.2f, 0.4f, 0.0f); gl.glVertex3f( 0.2f, 0.6f, 0.0f); gl.glVertex3f( 0.0f, 0.6f, 0.0f); gl.glVertex3f( 0.0f, 0.4f, 0.0f); //3 gl.glVertex3f( 0.0f, 0.4f, 0.0f); gl.glVertex3f( 0.0f, 0.6f, 0.0f); gl.glVertex3f( -0.4f, 0.2f, 0.0f); gl.glVertex3f( -0.2f, 0.2f, 0.0f); //4 gl.glVertex3f( -0.2f, 0.2f, 0.0f); gl.glVertex3f( -0.4f, 0.2f, 0.0f); gl.glColor3f(0.0f,1.0f,1.0f); gl.glVertex3f( -0.4f, -0.4f, 0.0f); gl.glVertex3f( -0.2f, -0.2f, 0.0f); //5 gl.glVertex3f( -0.2f, -0.2f, 0.0f); gl.glVertex3f( 0.0f, -0.4f, 0.0f); gl.glVertex3f( -0.2f, -0.6f, 0.0f); gl.glVertex3f( -0.4f, -0.4f, 0.0f); //6 gl.glVertex3f( -0.2f, -0.6f, 0.0f); gl.glVertex3f( 0.0f, -0.4f, 0.0f); gl.glVertex3f( 0.2f, -0.4f, 0.0f); gl.glVertex3f( 0.2f, -0.6f, 0.0f); //7 gl.glVertex3f( 0.2f, -0.6f, 0.0f); gl.glVertex3f( 0.2f, -0.2f, 0.0f); gl.glVertex3f( 0.4f, -0.2f, 0.0f); gl.glVertex3f( 0.4f, -0.4f, 0.0f); //8 gl.glVertex3f( 0.4f, -0.2f, 0.0f); gl.glVertex3f( 0.0f, -0.2f, 0.0f); gl.glVertex3f( 0.0f, 0.0f, 0.0f); gl.glVertex3f( 0.4f, 0.0f, 0.0f); gl.glEnd(); g-=0.5f; gl.glFlush(); //L gl.glLoadIdentity(); gl.glTranslatef(3f,-4.0f,-10.0f); gl.glRotatef(l,1.0f,0.0f,0.0f); gl.glBegin(GL.GL_QUADS); //1 gl.glColor3f(1.0f,0.0f,1.0f); gl.glVertex3f( -0.4f, 0.6f, 0.0f); gl.glVertex3f( -0.2f, 0.6f, 0.0f); gl.glColor3f(0.0f,1.0f,1.0f); gl.glVertex3f( -0.2f, -0.6f, 0.0f); gl.glVertex3f( -0.4f, -0.6f, 0.0f); //2 gl.glVertex3f( -0.2f, -0.4f, 0.0f); gl.glVertex3f( 0.4f, -0.4f, 0.0f); gl.glVertex3f( 0.4f, -0.6f, 0.0f); gl.glVertex3f( -0.2f, -0.6f, 0.0f); gl.glEnd(); l-=0.5f; gl.glFlush(); } /** * Called by the drawable during the first repaint after the component has * been resized. The client can update the viewport and view volume of the * window appropriately, for example by a call to * GL.glViewport(int, int, int, int); note that for convenience the component * has already called GL.glViewport(int, int, int, int)(x, y, width, height) * when this method is called, so the client may not have to do anything in * this method. * @param gLDrawable The GLDrawable object. * @param x The X Coordinate of the viewport rectangle. * @param y The Y coordinate of the viewport rectanble. * @param width The new width of the window. * @param height The new height of the window. */ public void reshape(GLAutoDrawable gld, int x, int y, int width, int height) { GL gl = gld.getGL(); if (height <= 0) // avoid a divide by zero error! height = 1; float h = (float)width / (float)height; gl.glViewport(0, 0, width, height); gl.glMatrixMode(GL.GL_PROJECTION); gl.glLoadIdentity(); glu.gluPerspective(65.0f, h, 1.0, 20.0); gl.glMatrixMode(GL.GL_MODELVIEW); gl.glLoadIdentity(); } /** * Called when the display mode has been changed. <B>!! CURRENTLY UNIMPLEMENTED IN JOGL !!</B> * @param gLDrawable The GLDrawable object. * @param modeChanged Indicates if the video mode has changed. * @param deviceChanged Indicates if the video device has changed. */ public void displayChanged(GLAutoDrawable gld, boolean modeChanged, boolean deviceChanged) { } /** * Invoked when a key has been pressed. * See the class description for {@link KeyEvent} for a definition of * a key pressed event. * @param e The KeyEvent. */ public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ESCAPE){ animator.stop(); System.exit(0); } } /** * Invoked when a key has been released. * See the class description for {@link KeyEvent} for a definition of * a key released event. * @param e The KeyEvent. */ public void keyReleased(KeyEvent e) {} /** * Invoked when a key has been typed. * See the class description for {@link KeyEvent} for a definition of * a key typed event. * @param e The KeyEvent. */ public void keyTyped(KeyEvent e) {} /** * Used to register an Animator Object, which can be controlled from inside * this class * @param animator The Animator */ public void registerAnimator(Animator animator) { this.animator = animator; } private Particle createParticle() { Particle p = new Particle(1.0f, 0.001f); p.setSpeed(Particle.SPEED_X, 0.001f-(float)Math.random()/500.0f); p.setSpeed(Particle.SPEED_Z, 0.001f-(float)Math.random()/500.0f); return p; } public byte[] getTextureData() { byte[] data = new byte[256*4*256]; for(int i=0; i<256*4*256; i+=4) { data[i] = (byte)150; data[i+1] = (byte)150; data[i+2] = (byte)255; } for(int y=0; y<256; y++) { for(int x=0; x<256; x++) { int dx = x-128; int dy = y-128; int w = 50 - (int)Math.sqrt((double)(dx*dx+dy*dy))*2; if (w < 0) w = 0; data[y*256*4+x*4+3] = (byte)w; } } return data; }}