Kumpel, du machst mich echt fertig.
Block[high(Block) - 3].fPosition.Y
Das ist sehr unsauber (und geht auch nur, weil TBlock in der selben
unit steht). Spendier' TBlock mal eine property X und Y, wie ich‘s dir letztens gezeigt habe.
Deine Schleife wird so auch etwas lesbarer. Was soll die eigentlich machen?
Delphi-Quellcode:
n := high(Block);
for i := 0 to n do
if (i <> n - 3) and (i <> n - 2) and (i <> n - 1) and (i <> n - 0) then
if (Block[n - 3].y + 1 <> Block[i].y) and (Block[n - 3].y + 1 <> 0) then
if (Block[n - 2].y + 1 <> Block[i].y) and (Block[n - 2].y + 1 <> 0) then
if (Block[n - 1].y + 1 <> Block[i].y) and (Block[n - 1].y + 1 <> 0) then
if (Block[n - 0].y + 1 <> Block[i].y) and (Block[n - 0].y + 1 <> 0) then
kannbewegen := true;
Ja deine Berbesserungsvorschläge hab ich noch nicht umgestetzt da ich erst mal das gröbst zum laufen bringen wollte und dann mir den Code noch einmal anschauen und verbessern.