Такая проблема. В OpenGL объект двигается не туда, куда повернут. И вообще, я не нашел никакой связи между тем, куда он повернут и куда двигается. А поворачивается он ровненько вокруг своей оси Z.
Обработка клавишь:
| Код | if keys[VK_Up] then with mycub do begin worldx:=worldx+cos(Angz)*0.05; worldy:=worldy+sin(Angz)*0.05; end; if keys[VK_Left] then with mycub do angz:=angz+0.5; if keys[VK_Right] then with mycub do angz:=angz-0.5;
|
Рисование:
| Код |
var i:longint; begin glloadidentity; gltranslatef(worldx,worldy,worldz); glrotatef(angz,0.0,0.0,1.0); for i:=0 to length(faces)-1 do with faces[i] do begin glbegin(GL_QUADS); with pts[0] do glvertex3f(x,y,z); with pts[1] do glvertex3f(x,y,z); with pts[2] do glvertex3f(x,y,z); with pts[3] do glvertex3f(x,y,z); glend; end; end;
| |