Du musst beim Positionieren deiner Schlange oder der Banane die Koordinaten erst "gittergerecht" machen.
Entweder damit:
Delphi-Quellcode:
function GetGridCoord(Value:Integer):Integer;
begin
Result:= Trunc(((Value+(GridSize/2))/GridSize))*GridSize ;
end;
Oder mit dieser leicht schnelleren
Version:
Delphi-Quellcode:
function GetGridCoord(Value:Integer):Integer;
begin
asm
add EAX,5
mov CL,GridSize
div CL
mul CL
//add EAX,1 // noch eins dazu
mov Result,EAX
end;
end;
Die globale Variable GridSize sollte vom Typ Byte sein und enthält die Gittergröße (z.B. 10).
Also sieht das quasi später so aus:
Banane.X:=GetGridKoord(irgendwasX);
Banane.Y:=GetGridKoord(irgendwasY);
T. Dieffenbach