Ich habe in der letzten Woche eine funktion geschrieben die soll mir dises seiten zurückgeben doch leider funktioniert sie nur in meinem test projekt aber nicht in meinem eigentlichen projekt.
so sieht die funktion aus:
Delphi-Quellcode:
for i:=0 to High(obj.walls) do begin
// Rechts
if (x+w+s > obj.walls[i].x) and (y > obj.walls[i].y) and (x+w+s < obj.walls[i].x+obj.walls[i].w) and (y < obj.walls[i].y+obj.walls[i].h) then
result.WRechts:=True;
// Lings
if (x-s > obj.walls[i].x) and
(y > obj.walls[i].y) and
(x-s < obj.walls[i].x+obj.walls[i].w) and
(y < obj.walls[i].y+obj.walls[i].h) then
result.WLings:=True;
// Unten
if (x > obj.walls[i].x) and (y+h+1 >obj.walls[i].y) and(x < obj.walls[i].x+obj.walls[i].w) and (y+h+1< obj.walls[i].y+obj.walls[i].h) then
result.WUnten:=True;
// Oben
if (x > obj.walls[i].x) and (y > obj.walls[i].y) and(x < obj.walls[i].x+obj.walls[i].w) and (y<obj.walls[i].y+obj.walls[i].h ) then
result.WOben:=True
end;
das ziel dieser funktion ist es herrauszufinden welche seite zusammenstößt mit den angeben position angaben(x,y,w,h,s)
doch leider gibt sie mir immer nur unten als seite raus aber nicht lings bzw. rechts..... ich finde einfach keine lösung für das problem.....