![]() |
(wieder einmal) Kollisionsabfrage mit DelphiX
Hallo Leute!
Ich weiss, wir hatten das Thema schon ein paar Mal. Aber ich kriegs einfach nicht hin: Ich habe da so ein kleines Labyrinth, das aus lauter kleinen 32x32 grossen Blöcken (Sprites) aufgebaut ist (= die Wände des Labyrinths). Das Spieler-Sprite darf aber nicht durch die Wände laufen. Wie kann ich das realisieren? Ich hoffe, jemand kann mir helfen! :hi: |
Re: (wieder einmal) Kollisionsabfrage mit DelphiX
Delphi-Quellcode:
TSpieler wäre das Sprite das sich im Labyrinth bewegt und TWand halt die 32x32 große Sprites die die Wand darstellen sollen!
procedure TSpieler.DoCollision(Sprite:TSprite; var Done:Boolean);
begin if sprite is TWand then case Spieler.richtung of //richtung von der man kommt 1: y := y + 1; //wenn man nach oben läuft und die Wand berührt 2: x := x - 1; //wenn man nach rechts läuft und die Wand berührt 3: y := y - 1; //wenn man nach unten läuft und die Wand berührt 4: x := x + 1; //wenn man nach links läuft und die Wand berührt end; end; richtung muss bei TSpieler als integer vereinbart werden und bei DoMove je nach richtung geändert werden! 1 -> nach oben 2 -> rechts 3 -> unten 4 -> links So müsste es funktionieren das TSpieler nicht auf die Wand läuft, bzw. bevor es angezeigt wird das TSpieler auf die Wand läuft wird TSpieler wieder zurück gesetzt in die richtung von der er kam! PS: Ich hoffe ich hab das Problem richtig vertsanden! |
Re: (wieder einmal) Kollisionsabfrage mit DelphiX
ICH DANKE DIR!!!! :hello: :love:
Das ist einfach und doch genial! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz