Sprungkollisions Frage
Übersicht

Blitzkrieg BopBetreff: Sprungkollisions Frage |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi.
Erstmal: Frohe Weihnachten ![]() Ich habe ein Problem. In meinem kleinen Spiel soll auf Kollision geprüft werden, wenn der Spieler springt. Es soll also geprüft werden, ob unter dem Spieler ein Tile ist. (Hier: Ein Tile mit der Nummer 1.). Das mache ich bis jetzt so: Code: [AUSKLAPPEN] If Map(px#/TS,(py#/TS)+1) = 1 ... px# und py# sind die Player Koordinaten ; TS ist die Tilesize. Doch diese Kollision funzt nur manchmal. Kommt man nämlich so auf ein Tile mit dem Wert 1 auf, das zwar ein Teil des Spieler drauf steht, aber der Rest über einem Tile mit dem Wert 0 etwa, findet die Kollision nicht statt. Ich hab jetzt so lange rumprobiert, doch ich kriege das nicht gelöst. Man sackt dann immer zwischen 2 Tiles ein ~.~ Híer ne Skizze des Problems. Das rote Feld hat den Wert 1, das ohne Füllung links daneben 0. Der Spieler würde nun dazwischen rutschen. http://www.wb6.de/daniel/trash/skizze.bmp Vielleicht kann mir jemand helfen. MFG |
||
~ Hey Ho Let's Go ~ |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du rechnest mit Floats. Hast Du es schonmal so versucht:Code: [AUSKLAPPEN] If Map(Int(px#)/TS,(Int(py#)/TS)+1) = 1 ... Ist jetzt ungestestet, aber erscheint mir jetzt auf die schnelle logisch ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Blitzkrieg Bop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Habs grad getestet und musste leider feststellen, das an manchen Stellen noch gerutscht wird. Was kann man da noch machen? ![]() |
||
~ Hey Ho Let's Go ~ |
![]() |
Ralf |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
das müsste auch mit Float gehen, obwohl das überflüssig ist. Ich gehe mal davon aus das Du das Handle der Figur auf der X-Achse in die Mitte gesetzt hast. Bei Deiner Kollisionsabfrage ermittelst Du nur den einen Punkt in der Mitte der Figur. Hat die Figur Dein Tile 1 mit der Mitte überschritten, fällt er runter da dann keine Berührung mehr stattfindet. Du musst also schon die ganze Breite der Figur auf Bodenkontakt überprüfen, und nicht nur einen Punkt. Ralf |
||
Blitzkrieg Bop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi! ![]() Jo danke Ralf, das war der richtige Ansatz. Habs dann auch gleich so umgesetzt, das mit ner For/Next Schleife einfach die komplette Figur von unten kinks nach unten rechts auf Kollision abgefragt wird. Nun klappt es super. Besten Dank ![]() |
||
~ Hey Ho Let's Go ~ |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group