meinen Versuch, eine Tile-Based Map in Canvas zu erstellen hab ich aufgeben und bin dann doch zu OpenGl umgeschwenkt.
Ich hab scheinbar ein Verständnisproblem. Ich versuche Isometrische Tiles in folgender Form anzuordnen
x
x x
x x x
x x
x
also ne riesige Raute...meine erste Linie versuche ich gerade per Hand zu zusammenzuschustern, jedoch müsste eigentlich immer eine Art Versatz dazu kommen, jedoch hab ich entweder nen Knick in der Optik oder die Teile liegen tatsächlich versetzt nebeneinander obwohl ich der Meinung war, sie müssten quasi gestapelt liegen
Code: Alles auswählen
procedure TForm1.Timer1Timer(Sender: TObject);
begin
glClearColor(0.0, 0.0, 0.0, 0.0);
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
glEnable(GL_DEPTH_TEST);
glMatrixMode(GL_Projection);
glViewport(0,0,ClientWidth,ClientHeight);
glLoadIdentity();
glTranslatef(StartX,Zoom,0.0);
DrawMap(0.0,0.0,0.0);
DrawMap(-0.25,-0.25,-0.01);
DrawMap(-0.30,-0.30,-0.02); // warum, haben die gleiche Koordinaten, liegen aber versetzt nebeneinander!!!!!
DrawMap(-0.30,-0.30,-0.03);
DrawMap(-0.30,-0.30,-0.04);
OpenGLControl1.SwapBuffers;
end;
procedure TForm1.DrawMap(x,y,z : real);
begin
// --- Textur Aktivieren
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, textureID0);
glTranslatef(x,y,z);
glBegin(GL_QUADS);
glTexCoord2f(0.0, 0.0);
glVertex3f(-0.3, -0.3, 0);
glTexCoord2f(1.0, 0.0);
glVertex3f(-0.3, 0.3, 0);
glTexCoord2f(1.0, 1.0);
glVertex3f(0.3, 0.3, 0);
glTexCoord2f(0.0, 1.0);
glVertex3f(0.3, -0.3, 0);
glEnd();
end;