procedure TForm1.Render(Sender: TObject;
var Done: Boolean);
begin
// Altes löschen
glClear(GL_COLOR_BUFFER_BIT
or GL_DEPTH_BUFFER_BIT);
// Karte und sehfeld einstellen kommt noch in OnCreate - Event
glMatrixMode(GL_PROJECTION);
glLoadIdentity;
glViewport(0, 0, ClientWidth, ClientHeight);
glOrtho(0, SizeX, 0, SizeY, -128, 128);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity;
// Prüfen ob ein Block grade runterfällt, wenn nicht, erstelle einen neuen
If SelBlock.Typ = 0
then
begin
SelBlock.Typ := 1;
// Kommt noch Zufalls-Funkt. hin
SelBlock.pX := SizeX/2-TypDaten[SelBlock.Typ].pWidth/2;
SelBlock.pY := SizeY;
end;
// Den jeweiligen Typen erstellen
glBegin(GL_QUADS);
glColor3f(TypDaten[1].Red, TypDaten[1].Green, TypDaten[1].Blue);
glVertex3f(SelBlock.pX, SelBlock.pY, 0);
glVertex3f(SelBlock.pX, SelBlock.pY-TypDaten[SelBlock.Typ].pHeight, 0);
glVertex3f(SelBlock.pX+TypDaten[SelBlock.Typ].pWidth, SelBlock.pY-TypDaten[SelBlock.Typ].pHeight, 0);
glVertex3f(SelBlock.pX+TypDaten[SelBlock.Typ].pWidth, SelBlock.pY, 0);
glEnd;
// Objekt weiterfallen lassen
If SelBlock.pY > TypDaten[SelBlock.Typ].pHeight
then
SelBlock.pY := SelBlock.pY - 2
else
SelBlock.Typ := 0;
SwapBuffers(
DC);
Done := False;
end;