Hiho
lang lang ist's her das ich das letzte mal hier war

Nundenn...
Mein Problem ist, das ich seit etwa nem Monat für ein Team-Projekt eine Jump'n'Run Engine in Blitz3D (BlitzBasic) schreibe. Soweit funktioniert die auch schon ganz gut, aber mein größtes Problem ist derzeit die Sprungroutine. Sie sieht nicht gut aus, und sorgt für diverse Grafikfehler .

[Engine V.8_b]

Ich setze eine bestimmte Sprunghöhe (z.b. 64), und messe dann den Abstand des Spielers zur festgelegten Sprunghöhe. Bei Deckenkollision,etc. wird dieser Vorgang unterbrochen.

Der Spieler hat 4 kollisionsflächen. Oben, Rechts, Unten, Links. (In der oben verlinkten Engine werden die Kollisionsflächen für Oben und Unten üprigens nicht richtig dargestellt). Ich bewege den Spieler, prüfe ob er mit einem Objekt kollidiert (bzw. in ihm steckt), und bewege ihn ggf. in die andere Richtung wieder vom Objekt weg/raus.



Ich merke das ich es nicht richtig erklärt bekomme, also versuche ich mein Problem auf den Punkt zu bringen:

Der Spieler kann mithilfer einer gewissen Geschwindigkeit durch Objekte "durchspringen" (oder laufen). das Problem ist, das ich nicht garantieren kann, das jedes Tile 32x32 groß ist. Und wenn die Geschwindigkeit nun so groß ist, das der eigentliche Kollisionspunkt schon durch das Objekt durch ist, der Rest des Spielers aber noch im Objekt ist, hab ich den Salat (dann spring nämlich meistens die kollisionsfläche für die Seiten an und schmeißt den Spieler aus der Map).

Den Spieler Pixel für Pixel zu bewegen ist auch keine Lösung, da dann die Geschwindigkeit in den Keller sinkt.

Hat einer eine Idee wie ich das vernünftig geregelt bekomme ? Oder ist der ganze Ansatz einfach nur murks ?

Grüßle:
Kernle