Hallo zusammen,
Ich programmiere mit OpenGL das Spiel TicTacToe und
habe folgendes Problem. Mein Frame ist 800x800 gross.
Wenn ich auf das Frame ein Bild zeichne, wird es zwar
gezeichnet aber nicht in der richtigen Grösse. Woran
könnte das liegen?
Ps.: Im Anhang befindet sich ein Screenshoot von meinem Program.
Main.java:
GUI.java:
Und zuletzt Grid.java:
Ich programmiere mit OpenGL das Spiel TicTacToe und
habe folgendes Problem. Mein Frame ist 800x800 gross.
Wenn ich auf das Frame ein Bild zeichne, wird es zwar
gezeichnet aber nicht in der richtigen Grösse. Woran
könnte das liegen?
Ps.: Im Anhang befindet sich ein Screenshoot von meinem Program.
Main.java:
Java:
import static Display.GUI.*;
import org.lwjgl.opengl.Display;
import Grid.Grid;
public class Main{
private final int FPS = 120;
public Main(){
launchGame();//siehe GUI.java
Grid grid = new Grid(quickLoad("background"));
while(!Display.isCloseRequested()){
grid.draw();
Display.update();
Display.sync(FPS);
}
Display.destroy();
}
public static void main(String[] args){
new Main();
}
GUI.java:
Java:
public class GUI{
public final static int WIDTH = 800;
public final static int HEIGHT = 800;
public final static int SCALE = 1;
public static void launchGame(){
Display.setTitle("TicTacToe");
try {
Display.setDisplayMode(new DisplayMode(WIDTH * SCALE, HEIGHT * SCALE));
Display.create();
} catch (LWJGLException e) {
e.printStackTrace();
}
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, WIDTH * SCALE, HEIGHT * SCALE, 0, 1, -1);
glMatrixMode(GL_MODELVIEW);
glEnable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
}
public static void drawTexture(Texture tex, float x, float y, float width, float height){
tex.bind();
glTranslatef(x, y, 0);
glBegin(GL_QUADS);
glTexCoord2f(0, 0);
glVertex2f(0, 0);
glTexCoord2f(1, 0);
glVertex2f(width, 0);
glTexCoord2f(1, 1);
glVertex2f(width, height);
glTexCoord2f(0, 1);
glVertex2f(0, height);
glEnd();
glLoadIdentity();
}
public static Texture quickLoad(String name){
Texture tex = null;
tex = loadTexture("res/" + name + ".png", "PNG");
return tex;
}
Java:
public class Grid{
private Texture texture;
private final int X = 0, Y = 0;
public Grid(Texture texture){
this.texture = texture;
}
public void draw(){
drawTexture(texture, X, Y, WIDTH, HEIGHT);//siehe GUI.java
}
}