Skal ikke ramme panels
Jeg har et image, kaldet Player samt et x antal panels.Jeg har skrevet følgende kode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key = 'a' then
player.left := player.left-4;
if key = 'd' then
player.left := player.left+4;
if key = 'w' then
player.top := player.top-4;
if key = 's' then
player.top := player.top+4;
end;
Nu vil jeg gerne have, at player ikke støder ind i noget panel. Mine panels hedder Panel1,panel2,panel3 osv.
Så skriver jeg koden:
If player.top = panel1.top-4 then EtEllerAndet.
Men da jeg nu har flere panels, så skal jeg jo skrive:
if player1.top = panel1.top-4 then EtEllerAndet;
if player1.top = panel2.top-4 then EtEllerAndet;
if player1.top = panel3.top-4 then EtEllerAndet;
osv. osv. osv. Og hvis der nu er 100 panels,så skal jeg skrive "if player1.top = panel1.top-4 then EtEllerAndet; " 100 gane. Hvordan undgår jeg det, og siger, at hvis player.top = panelX.top-4, således at jeg ikke skal fortælle hvad hver panel hedder, hvis den bare får at vide, at hvert panel hedder Panel, og hvis den støder ind i noget Panel, så skal den gøre et eller andet?
Jeg har prøvet med følgende kode:
for x := 0 to 100 do
begin
if player.top = panel[x].top-4 do EtEllerAndet.
end;
Men det kan den ikke håndtere... Hvad gør jeg?
