检查效率:Opengl动画代码

时间:2015-08-22 19:45:41

标签: java opengl lwjgl

我为Ludum dare做了opengl动画制作了一小段代码。它工作正常,但我只是想知道它是否足够高效,让我考虑将来重用它用于更重要的游戏。我大多关于这样一个事实:我正在为每次更新抛出多个整数浮点数,如果我记得正确的铸造对象存储在内存中直到程序终止(如果我错了请纠正我)。 我知道我使用的是过时的OpenGl,但新的Opengl似乎很难学习。如果有一些简单的方法可以有效地使用新的openGL,请随时告诉我。如果还有其他方法,我可以改进此代码以提高效率,请回复您建议的改进。

   public class AnimatedObject {
private int frames;
private int currentframe;
private int tex;

public void update(){
if (currentframe<frames){

currentframe = currentframe +1;
}
else{
    currentframe = 1;
}
 GL11.glEnable(GL_TEXTURE_2D);

        System.out.println(currentframe);
        System.out.println("total frames"+frames);
        GL11.glPushMatrix();
        //GL11.glBindTexture(GL11.GL_TEXTURE_2D, sprites);
        float bob = (float)currentframe/frames;
        float bop = (float)(currentframe-1)/frames;
        System.out.println(bob);
        System.out.println(bop+ "is bop");
        GL11.glBegin(GL11.GL_QUADS);
          GL11.glTexCoord2f(bop, 0);
            GL11.glVertex2i(-1, 1); // Upper-left
            GL11.glTexCoord2f(bob, 0);
            GL11.glVertex2i(1, 1); // Upper-right
            GL11. glTexCoord2f(bob, 1);
            GL11.glVertex2i(1, -1); // Bottom-right
            GL11. glTexCoord2f(bop, 1);
            GL11.glVertex2i(-1, -1); // Bottom-left


            GL11.glPopMatrix();
        GL11.glEnd();

     }
    public AnimatedObject(int frames, int tex){
    this.frames = frames;
    this.tex= tex;

}

}

0 个答案:

没有答案