我为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;
}
}