Hi,
ich hab schon mit Direct3D in C++ gearbeitet und versuche gerade OpenGL in Java zu programmieren. Da es leider nicht viele Tutorials zu 2D Spieleprogrammierung für JOGL gibt versuche ich mein Glück mal hier.
Ich suche nach einer Möglichkeit, ein Sprite möglichst einfach an eine X,Y Position auf den Bildschirm zu platzieren. Mein JFrame hat zum Beispiel die Auflösung 640x480 und ich möchte ein kleines 32x32 Sprite an die Position X=320, Y=240 zeichnen.
Bisher hab ich das mit einem Quad versucht:
Mit diesem Code passiert natürlich nicht was ich will. Mein Sprite erscheint wenn ich als Position X=0, Y=0 übergebe irgendwo in der rechten oberen Ecke des Frames. Ich will mit dem Codeausschnitt eher andeuten was ich vorhabe: Ich hätte gerne, dass das Sprite mit seiner linken oberen Ecke an die Position X=320, Y=240 auf mein Fenster gezeichnet wird.
Kann mir vielleicht jemand der schon einmal was in die Richtung gemacht hat einen Tipp oder einen Link geben? Ich hab auf Google schon mehrere Seiten Suchergebnisse durchgeschaut, aber komme nicht weiter.
Vielen Dank schonmal im Voraus,
Gruß Xoric
ich hab schon mit Direct3D in C++ gearbeitet und versuche gerade OpenGL in Java zu programmieren. Da es leider nicht viele Tutorials zu 2D Spieleprogrammierung für JOGL gibt versuche ich mein Glück mal hier.
Ich suche nach einer Möglichkeit, ein Sprite möglichst einfach an eine X,Y Position auf den Bildschirm zu platzieren. Mein JFrame hat zum Beispiel die Auflösung 640x480 und ich möchte ein kleines 32x32 Sprite an die Position X=320, Y=240 zeichnen.
Bisher hab ich das mit einem Quad versucht:
Java:
private void render(GLAutoDrawable drawable)
{
// Clear the color buffer
GL2 gl = drawable.getGL().getGL2();
gl.glClear(GL.GL_COLOR_BUFFER_BIT);
// store the current model matrix
gl.glPushMatrix();
// bind texture
tex.bind();
gl.glTranslatef(320, 240, 0); // funktioniert so natürlich nicht, als Parameter werden floats erwartet
// draw the texture using a quad
gl.glBegin( GL2.GL_QUADS );
gl.glTexCoord2d(0.0,0.0); gl.glVertex2d(0.0,0.0);
gl.glTexCoord2d(1.0,0.0); gl.glVertex2d(1.0,0.0);
gl.glTexCoord2d(1.0,1.0); gl.glVertex2d(1.0,1.0);
gl.glTexCoord2d(0.0,1.0); gl.glVertex2d(0.0,1.0);
gl.glEnd();
// pop matrix
gl.glPopMatrix();
}
Mit diesem Code passiert natürlich nicht was ich will. Mein Sprite erscheint wenn ich als Position X=0, Y=0 übergebe irgendwo in der rechten oberen Ecke des Frames. Ich will mit dem Codeausschnitt eher andeuten was ich vorhabe: Ich hätte gerne, dass das Sprite mit seiner linken oberen Ecke an die Position X=320, Y=240 auf mein Fenster gezeichnet wird.
Kann mir vielleicht jemand der schon einmal was in die Richtung gemacht hat einen Tipp oder einen Link geben? Ich hab auf Google schon mehrere Seiten Suchergebnisse durchgeschaut, aber komme nicht weiter.
Vielen Dank schonmal im Voraus,
Gruß Xoric