Straffes Seil

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

derAtomkeks

ehemals "Sethus"

Betreff: Straffes Seil

BeitragDo, Sep 06, 2012 15:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi @ all,

in meinem Spiel würde ich gerne eine Art Enterhaken einbauen. Man wirft ihn irgendwo hin, dort "hakt" er sich fest, anschließend wird man zu diesem Zielort hingezogen.
Die realistische Bewegung durch Beschleunigung des Spielers zum Zielort ist bereits umgesetzt und funktioniert wunderbar. Zur Visualisierung erstelle ich einfach einen schmalen Zylinder, der entsprechend skaliert und ausgerichtet zwischen Spieler und Zielort positioniert wird und wie ein straffes Seil aussieht.

Klingt alles super, wo liegt das Problem?
Das Problem sind Kanten. Man stelle sich vor, der Spieler wirft den Enterhaken auf ein Hausdach, das übersteht. Er wird nun zum Haus hingezogen, an der Hauswand nach oben - und bleibt unter dem Dachüberhang hängen. Währenddessen kann man auf dem Dachboden das "Seil" beobachten, da es durch die Wände eine direkte Verbindung darstellt.

Gibt es eine Möglichkeit, mit möglichst wenig Rechenaufwand das Seil "aufliegen" zu lassen? Es muss ja zum Glück nichts durchhängen o.ä., wie in anderen Posts bereits diskutiert, da das Seil unter Spannung steht.
Es geht jedoch nicht nur um das einfache, sondern auch um das mehrfache Abknicken des Seiles in beliebige Richtungen.

Noch Beispiel: Der Spieler will sich nur zum Haus hin ziehen, ihm steht nichts im Weg, funktioniert also mit den bisherigen Implementierungen. Dann schlägt plötzlich ein Meteor neben dem Spieler ein (was in diesem Spiel ab und zu vorkommt [und der Spieler überlebt sogar! Razz]). Durch die Druckwelle des Einschlags wird der Spieler am Haus vorbei befördert, wodurch das Seil anschließend an der Hausecke abgeknickt wird.

Da ja leider keine PolygonToPolygon Kollision von Blitz unterstützt wird, kann ich mir nicht vorstellen, wie man solche Abknick- bzw. Aufliegepunkte ermitteln soll.

Die Lösung sollte sehr performant sein, da sie u. U. sehr häufig benötigt werden könnte.

Falls das Ganze nicht so funktionieren sollte, würde ich gerne zumindest die Kollisionsprüfung einbauen, damit das "Seil" dann aufgelöst werden kann (ist nämlich eigentlich kein Seil, sondern ein Zauber. Wink ).

Danke schon mal im Voraus! Wink

Jan_

Ehemaliger Admin

BeitragDo, Sep 06, 2012 16:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja, ich wüde einfach schauen, ob zwischen spieler und Seilende ein Objekt ist und dann auflösen, den Zauber. Ansonsten fällt mir keine Performante Lösung ein.
between angels and insects

derAtomkeks

ehemals "Sethus"

BeitragDo, Sep 06, 2012 16:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Achja, einfach per LinePick.
Da kommt mir eine Idee: Einfach bei jedem Schleifendurchlauf per LinePick auf Unterbrechungen überprüfen und dann an dem Punkt das "Seil" teilen. Ab dann jeden Durchlauf prüfen, ob eine direkte Verbindung zum Zielpunkt besteht - wenn ja, Knickpunkt entfernen.
Vielen Dank für den Anstoß, ich werd's mal so versuchen. Very Happy

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group