Problem bei Kollision
Übersicht

![]() |
toddyBetreff: Problem bei Kollision |
![]() Antworten mit Zitat ![]() |
---|---|---|
Moin!
Ich schreibe gerade ein Jump 'n' Run, die Kollision des Spielers funktioniert, und auch die eines Gegnertypes, jetzt, beim zweiten, gibt es ein Problem... Der Gegner läuft zwar auf dem Boden aber durch alle Wände =) In fi (fields) sind Gegner und später mal Items gespeichert. imgkoopa ist das Bild des Gegners, in zwei Richtungen (fi\direct). In map sind alle Blöcke gespeichert. fi\spdx ist die x-Geschwindigkeit. fi\ani ist die aktuelle Animationssequenz. BlitzBasic: [AUSKLAPPEN]
Danke schon mal, hoffe mal, dass jemand helfen kann ![]() toddy |
||
t:soft Homepage |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
ImagesCollide ist meiner bescheidenen Meinung nach die ganz falsche Richtung. Erstens ist es rechenintensiv, zum anderen haben manche Grafikkarten arge Probleme damit. ich verwende seit Jahren mit Erfolg dieses System:
BlitzBasic: [AUSKLAPPEN] u=map((p\x+16)/32,(p\y-2)/32,0) ; oben / up Die Spielfigur sowie die Tiles sind dabei 32*32 Pixel groß. Für andere Größen müsste man halt die Werte anpassen. Zurückgegeben wird dabei die Nummer des Tiles rund um bzw. "hinter" der Spielfigur, siehe Kommentare eben. p\x bzw. y sind die absoluten Koordinaten der Spielfigur, ich habs nur schnell aus einem alten Projekt rauskopiert. |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
das wurgel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du hast da ganzschön viele Bedingungen mit And hintereinandergehängt. Schonmal geprüft welche davon False sind wenn der Gegner durch die Wand läuft? | ||
1 ist ungefähr 3 |
![]() |
toddy |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ich nur gucke ob irgendwo um den Gegner herum was ist, das ginge, aber ich will halt, dass er komplett an die Wand ranläuft. Wenn das nicht geht dann muss ich das dann doch so machen ![]() Wenn ich einen Gegner habe, der nur eine Richtung hat (man sieht ihn immer von vorne), dann gibt es keine Probleme... ![]() Also alles passt, bis auf die Kollision, weil das Bild keine Kollision meldet... Also immer 0. Dasselbe passiert beim Spieler wenn das Bild für ihn nicht groß genug ist... Danke schon mal! ![]() |
||
t:soft Homepage |
![]() |
das wurgel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Angenommen der Gegner schwebt auch nur ein pixel über der nächsten 32er Rasterlinie, tritt folgendes Szenario auf:
![]() Der Kasten ist der Gegner, das rote darin seine Kollisionsmaske, das grüne die Kollisionsmaske der Tiles. x und y ist das, was bei x = fi\x/32 y = fi\y/32 herauskommt und die Felder mit den Kreuzen sind die, die demnach geprüft werden. Gehe am besten mit einer For-Next schleife alle Felder durch, mit denen der Gegner kollidieren könnte. |
||
1 ist ungefähr 3 |
![]() |
toddy |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das hat leider nicht so ganz geklappt, es gab dann einige Fehler... ![]() Ich habe das erstmal rausgelassen, vielleicht baue ich es später wieder ein ![]() Danke an alle! |
||
t:soft Homepage |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group