Einzelnen Beitrag anzeigen

Benutzerbild von Wuaegner
Wuaegner

Registriert seit: 8. Feb 2004
406 Beiträge
 
Delphi 6 Enterprise
 
#9

Re: Rotationsalgorithmus für Tetrisspielsteine

  Alt 10. Jan 2005, 13:30
So für alle die es interessiert ist hier der Source wie sich bei mir die Steine ohne Fehler drehen:
Code:
begin
 result:= false;
 AltSpF:= FSpielfeld;

 for i:= 1 to 4 do       // alten SpSt löschen da er bei erfolgr. Drehung nicht da wäre
  FSpielfeld[FSpielStein[i].x,FSpielStein[i].y]:= FFreeColor;

// Zuordnen

  for i:= 1 to 4 do     // Drehpunkt: (0|0); Stein darüber : (0|1) usw.
   begin
     SpSt[i].x := SpSt[i].x - SpSt[0].x;
     SpSt[i].y := -SpSt[i].y + SpSt[0].y;
   end;
  SpStAlt := SpSt;

// Drehen

  for i:= 1 to 4 do
   begin
     SpSt[i].x:= SpStAlt[i].y;    // x := y;
     SpSt[i].y:= - SpStAlt[i].x;  // y := -x;
   end;

// Zurück zuordnen

  for i:= 1 to 4 do       // Speilstein erhält wieder seine
   begin                  // Koord. relativ zum Spielfeld, nicht mehr zum Drehpunkt
     SpSt[i].x := SpSt[0].x + SpSt[i].x;
     SpSt[i].y := SpSt[0].y - SpSt[i].y;
   end;
Wuaegner
Gruß Flo
Unternehmensberatung
  Mit Zitat antworten Zitat