用lwjgl绘制播放器(一个简单的矩形)确实......没什么

时间:2015-01-25 13:04:28

标签: java opengl lwjgl

所以,我想用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

1 个答案:

答案 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);