私はopenglを学んでいて、(1つの変数から)50個のテクスチャを描画したいです。これは私がしていることです:更新メソッドで:
public void update(){
while(!Display.isCloseRequested()){
input();
for(int x = 0; x< 100; x++){
block = new GrassBlock(x*32,10);
block.draw();
}
Display.update();
Display.sync(60);
}
}
これは私がopenGLを初期化する方法です:
private void initGL(){
glEnable(GL_TEXTURE_2D);
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glViewport(0, 0,640 , 480);
glMatrixMode(GL_MODELVIEW);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0,640 , 480, 0, 1, -1);
glMatrixMode(GL_MODELVIEW);
}
これはGrassBlockの描画方法です:
@Override
public void draw() {
grass.bind();
glBegin(GL_QUADS);
glTexCoord2f(0, 0);
glVertex2f(100, 100);
glTexCoord2f(1, 0);
glVertex2f(100+grass.getTextureWidth(),100);
glTexCoord2f(1,1);
glVertex2f(100+grass.getTextureWidth(),100+grass.getTextureHeight());
glTexCoord2f(0,1);
glVertex2f(100,100+grass.getTextureHeight());
glEnd();
}
また、ブロックの作成はループするので update メソッドに入れられないことはわかっていますが、1 つの変数から複数のテクスチャを描画できることをどのように解決すればよいでしょうか?
今では1つしか取得できず、常にちらつきます。