Так что я пытаюсь только повернуть один объект, я читал другие сообщения о том, как сделать это, но все они просто сказать что-то вроде этого: 1. Вызов glLoadIdentity();
2. Форма Жеребьевка 3. Вращаяlwjgl, вращающийся только один объект на экране?
Я попробовал то, что они мне сказали, но это не работает для меня?
if (time != faces.size() - 1 && faces.size() != 1){
if (faces.get(time+1).needsIdentity){
GL11.glLoadIdentity();
System.out.println("The not last identity was set!");
}
System.out.println("got identity");
}else{
if (faces.get(faces.size() - 1).needsIdentity){
GL11.glLoadIdentity();
System.out.println("identity set!");
}
System.out.println("got last identity");
}
GL11.glBegin(GL11.GL_QUADS);
GL11.glColor3f(f.clr.red, f.clr.green, f.clr.blue);
GL11.glVertex3f(f.loc.x - f.x, f.loc.y + f.y, f.loc.z + f.z);
GL11.glVertex3f(f.loc.x + f.x, f.loc.y + f.y, f.loc.z + f.z);
GL11.glVertex3f(f.loc.x + f.x, f.loc.y - f.y, f.loc.z + f.z);
GL11.glVertex3f(f.loc.x - f.x, f.loc.y - f.y, f.loc.z + f.z);
GL11.glEnd();
finished();
}
public void finished(){
GL11.glRotatef(rs.rotx, 1F, 0F, 0F);
GL11.glRotatef(rs.roty, 0F, 1F, 0F);
GL11.glRotatef(rs.rotz, 0F, 0F, 1F);
System.out.println("rotated");
}
Это мой код. в массиве под названием faces
- это 4 квадрата, из которых 3 имеют needsIdentity
ложных, и один из них имеет значение true, а также тот, который я пытаюсь повернуть. Я поместил строки печати, чтобы проверить, получает ли он идентификатор, что он делает. Также до times
1 добавляется каждый раунд.
Можете ли вы объяснить, где именно я должен позвонить glLoadIdentity()
? Возможно, вы захотите это узнать, но он меняет вместо объекта.