Problem bei Kollision
Übersicht BlitzBasic Allgemein
toddyBetreff: Problem bei Kollision |
Do, Sep 09, 2010 12:07 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 |
Fr, Sep 10, 2010 20:28 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 |
Fr, Sep 10, 2010 21:51 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 |
Sa, Sep 11, 2010 22:43 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 |
So, Sep 12, 2010 16:34 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 |
So, Sep 19, 2010 21:18 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 BlitzBasic Allgemein
Powered by phpBB © 2001 - 2006, phpBB Group