Kollision zwischen 2 Bildern + bestimmen des Aufprallwinkels

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Amroth

Betreff: Kollision zwischen 2 Bildern + bestimmen des Aufprallwinkels

BeitragSo, Jul 23, 2006 17:13
Antworten mit Zitat
Benutzer-Profile anzeigen
hiho

Zur zeit arbeite ich an einer realtime variante des guten alten "Worms".
Mit anderen worten: Wenn/Falls das spiel irgendwann einmal fertig ist, sollte es ein 2D-shooter mit zerstörbarer Landschaft sein.

Zur zeit sieht das ganze so aus:
user posted image

Jetzt stehe ich vor dem Problem, Granaten und Würmer realistisch vom Gelände abprallen zu lassen.... je nachdem in welchem winkel sie aufprallen.

Dazu müsste man nun allerdings herausfinden können, wie steil das Gelände an der Aufprallstelle ist... und hier liegt das Problem....

ich hoffe jemand kann mir hier helfen oder zumindest einen denkanstoss in die richtige richtung geben....

danke schon mal im voraus

MfG Amroth

Christoph

BeitragSo, Jul 23, 2006 18:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Vllt müsste man den Boden "abtasten" und so den Winkel bestimmen?
 

BIG BUG

BeitragSo, Jul 23, 2006 21:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Hatte mal was gebastelt, wo ein Ball von einem Pixelbild abprallt. Dazu werden bei einer Kollision einfach eine Reihe Pixel in Flugrichtung "abgeschossen" und bei einem Treffer mit der Wand deren Position gespeichert. Daraus wird dann der Winkel errechnet. Ist zwar noch nicht ganz ausgereift, aber vielleicht schon ein Ansatz:
www.mein-murks.de/quellcode/testkoll.zip
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)
 

Skulk

BeitragMo, Jul 24, 2006 8:31
Antworten mit Zitat
Benutzer-Profile anzeigen
eigentlich müsstest du nur die letzte X/Y coordinate "aufheben"
sobald du kollidierst errechnest du durch die Xalt und Xneu sowie Yalt und Yneu den richtungsvektor (Xalt-Xneu sowie Yalt-Yneu)

und aus diesem vektor kannst du wiederum den winkel errechnen.
ich habs grad net parat wie, aber ich glaube da ging was mit sin() cos()

guck mal in ner formelsammlung nach
War doesn't determine who's right,
war determines who's left...

Christoph

BeitragMo, Jul 24, 2006 12:43
Antworten mit Zitat
Benutzer-Profile anzeigen
@BIG BUG
Tolle Leistung, genau so scheint Amroth sich das vorzustellen.
Noch noch Schwerkraft, dann ist es perfekt. Very Happy
 

Amroth

BeitragMo, Jul 24, 2006 14:21
Antworten mit Zitat
Benutzer-Profile anzeigen
erst mal danke euch dreien und gleich nochmal speziell danke an BIG BUG Very Happy

zumindest vom resultat her scheint das genau das zu sein, was ich suche.. muss mich jetzt erst einmal noch ein bisschen mit dem code auseinandersetzen und hoffe dann auf deine erlaubnis, teile des codes übernehmen zu dürfen.. Smile

Schranz0r

BeitragMo, Aug 07, 2006 0:54
Antworten mit Zitat
Benutzer-Profile anzeigen
vieleicht hilft dir das weiter:

Code: [AUSKLAPPEN]
Global xkugel# ;X-Pos. der Kugel als Kommazahl
Global ykugel# ;Y-Pos. der Kugel als Kommazahl
Global winkel  ;gibt den Flugwinkel der Kugel an
Global geschwindigkeit ;die Fluggeschwindgikeit der Kugel


Code: [AUSKLAPPEN]
xkugel=xkugel+Cos(winkel)*geschwindigkeit
ykugel=ykugel-Sin(winkel)*geschwindigkeit

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group