Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Kann den Fehler nicht finden
Waldkauz - Mi 03.06.09 01:25
Titel: Kann den Fehler nicht finden
Ich suche jetzt schon ewig nach dem Fehler, kann ihn aber nicht finden.
Bei Kollision treten bei Image1,...,Image7 die erwünschten Parameter ein, bei Image8 aber nicht. Fehlermeldung wird keine angezeigt, aber irgendwo muss ein Fehler sein...
für dieses Image funktionierts z.B.:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| if (PtInRect(FirstImgRect, SiebenImgRect.TopLeft) and (Image7.Visible)) or (PtInRect(FirstImgRect, Point(SiebenImgRect.Right, SiebenImgRect.Top)) and (Image7.Visible)) or (PtInRect(FirstImgRect, Point(SiebenImgRect.Left, SiebenImgRect.Bottom)) and (Image7.Visible)) or (PtInRect(FirstImgRect, SiebenImgRect.BottomRight) and (Image7.Visible)) then begin Timer4.Enabled:=false; Timer1.Enabled:=false; Timer5.Enabled:=false; ShowMessage('Game Over!'); Edit1.Text:='0'; Button7.Click; end; |
für dieses seltsamerweise nicht:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| if (PtInRect(FirstImgRect, AchtImgRect.TopLeft) and (Image8.Visible)) or (PtInRect(FirstImgRect, Point(AchtImgRect.Right, AchtImgRect.Top)) and (Image8.Visible)) or (PtInRect(FirstImgRect, Point(AchtImgRect.Left, AchtImgRect.Bottom)) and (Image8.Visible)) or (PtInRect(FirstImgRect, AchtImgRect.BottomRight) and (Image8.Visible)) then begin Timer4.Enabled:=false; Timer1.Enabled:=false; Timer5.Enabled:=false; ShowMessage('Game Over!'); Edit1.Text:='0'; Button7.Click; end; |
jaenicke - Mi 03.06.09 01:37
Statt den Code tausendmal zu kopieren solltest du die Abfragen lieber in eine Funktion auslagern, der du die beiden Bilder zum Prüfen übergibst.
Was passieren kann ist auch das was in dem anderen Thread auch bereits erwähnt wurde: Dass nämlich ein kleineres Bild durch eine Wand wandert und dabei die vier getesteten Ecken außerhalb des kleineren Bildes bleiben.
Das musst du also auch noch prüfen. Notfalls indem du einfach umgekehrt prüfst, ob die Ecken des gerade als Rechteck betrachteten Bildes im anderen liegen.
Waldkauz - Mi 03.06.09 01:44
Moderiert von
Narses: Komplett-Zitat des letzten Beitrags entfernt.
Okay, ich verschiebs mal in die Funktion.
Hab inzwischen, als provisorische Lösung, das Image8 etwas kleiner gemacht, es funktioniert..
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!