所以,我想用lwjgl编写一个简单的游戏,但是我甚至在pre-pre-pre-alpha阶段之前就遇到了一个问题,就在开始时。
只要我没有纹理,我就想用简单的矩形画出玩家。但是,我的代码什么也没做。
这是我的openGL初始化代码:
glMatrixMode(GL_PROJECTION);
glOrtho(0, 640, 480, 0, 1, -1);
glMatrixMode(GL_MODELVIEW);
glEnable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
这是主循环:
while(!Display.isCloseRequested()) {
//Main loop
glClear(GL_COLOR_BUFFER_BIT);
player.update();
Display.update();
Display.sync(60);
}
Display.destroy();
System.exit(0);
player.update()函数检查Input并调用draw函数,如下所示:
public void draw() {
glBegin(GL_QUADS);
glVertex2f(x * World.TILE_SIZE, y * World.TILE_SIZE);
glVertex2f(x * World.TILE_SIZE + World.TILE_SIZE, y * World.TILE_SIZE);
glVertex2f(x * World.TILE_SIZE + World.TILE_SIZE, y * World.TILE_SIZE
+ World.TILE_SIZE);
glVertex2f(x * World.TILE_SIZE, y * World.TILE_SIZE + World.TILE_SIZE);
glEnd();
}
对我来说,这看起来非常简单的lwjgl代码应该没有任何问题,除非它没有。执行时,它只给我一个黑色的窗口,上面没有任何矩形。有什么建议吗?
提前致谢
-v0xelDev
答案 0 :(得分:0)
固定。
找到答案here。
显然,我无法在启用GL_TEXTURE_2D的情况下绘制简单的彩色形状,我的openGL初始化代码现在看起来像这样:
glMatrixMode(GL_PROJECTION);
glOrtho(0, 640, 480, 0, 1, -1);
glMatrixMode(GL_MODELVIEW);
glDisable(GL_TEXTURE_2D);
//glEnable(GL_BLEND);
//glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);