Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

23.03.2011, 00:17

Kugel die über Terrain rollt! Tribase-Engine

Hi Leute,
ich möchte das sich eine Kugel passend über ein Terrain bewegt. Sie soll sich also der Höhe des Models anpassen.
Konkret habe ich das tbm aus dem 3-2-Modelle Beispiel mit Breakanoid soweit kombiniert, dass dich eine Kugel auf der Z- und X-Achse bewegen kann. Wie schaffe ich es, dass die Kugel sich dem Terrain anpasst.
Meine erste Überlegung war die Y-Werte, an der Position der Kugel, aus dem City-Modell auszulesen und somit die Position der Kugel an zu passen.
Ist das möglich? Wenn ja wie?
Wenn nein, muss ich dann einen Weg über die Kollisionserkennung gehen?

Vielen dank im Vor raus
King-Kai

2

23.03.2011, 12:55

Ich würd es einfach mit kollisionserkennung lösen. Also wenn die Kugel nicht mit dem Terrain kollidiert setze sie um eine Einheit nache unten, kollidiert sie immer noch nicht, noch eine Einheit,...
Metal ist keine Musik sondern eine Religion.

3

23.03.2011, 16:29

Die tbModelHitsModel-Methode erwartet allerdings auch einige Matrizen die ich nicht habe und vermutlich auch nicht brauche... Denn das Terrainmodell ist ja fix und die Kugel bewegt sich ja theoretisch nur in zwei Dimensionen... Den Y-Wert würd ich dann im Falle einer Kollision anpassen...

4

23.03.2011, 21:02

Kannst du dann nicht einfach für die Matrizen NULL übergeben?
Metal ist keine Musik sondern eine Religion.

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

5

23.03.2011, 22:06

Die TriBase Engine arbeitet viel mit Referenzen. wenn dann versuche es mit einer Einheitsmatrix. Wegen dienem Problem: Ich vermute die tribase-Engine hat eine möglichkeit, für ein terrain die y-höhe an hand einer geg. xz-Koordinaten zu ermitterln. was sie das nicht tut, solltest du dir das anschauen. modelkollisionen ist dafür etwas overhead ;)

6

24.03.2011, 12:36

was sie das nicht tut, solltest du dir das anschauen. <-- Check ich nicht ganz.

Hat jemand ne Ahnung mit welcher Methoden das ganze dann funktionieren würde?

7

24.03.2011, 14:10

jaja TrommlBomml Spezial :D Ich glaube er meinte das wenn du die y-höhe nicht ermitteln kannst, du es mit der Einheitsmatrix versuchen solltest.
Metal ist keine Musik sondern eine Religion.

8

24.03.2011, 16:18

Ok, habs jetzt doch mal mit der Kollisionsmethode und der Identitätsmatrix gemacht... leider gibt tbModelHitsModel... jetzt immer true zurück...

C-/C++-Quelltext

1
2
3
4
5
6
7
8
    if(tbModelHitsModel(m_pLevelModel,m_pLevelMatrix,m_pLevelMatrix,m_pPaddleModel,m_pPaddleMatrix,m_pPaddleMatrix))
    {
        m_vPaddlePos.y += 1;
    }
    else
    {
        m_vPaddlePos.y -= 1;
    }


sodass sich die kugel (Paddle) immer weiter nach oben bewegt... ändert sich auch nicht... hab in den else-block schon eine textausgabe geschrieben die aber nie erscheint...


EDITH:
Wenn ich das Citymodell durch ein anderes Modell ersetze dann bekomme ich immer false zurück! seltsam...

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »King-Kai« (24.03.2011, 16:43)


Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

9

24.03.2011, 16:59

Checkt die Engine die Kollision möglicherweise über BoundingBoxes? Das könnte es möglicherweise Erklären. Bietet die tbEngine vielleicht Rays oä an? Dann könntest du einfach einen Strahl auf das Model schießen und würdest den gesuchten Schnittpunkt kriegen. Den Radius der Kugel aufaddieren und du hast die Position der Kugel. Weiß aber nicht ob die Engine sowas anbietet. Oder selber implementieren;)
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

10

24.03.2011, 17:03

Die Engine bietet:
dreieck - dreieck
kugel - kugel
linie - dreieck
linie - ebene
linie - kugel
linie - modell
linie - quader
modell - modell (s.o.)
punkt - quader
quader - quader

Leider kein "Kugel - Modell" oder "Punkt - Modell"...

tbModelHitsModel funktioniert über Boundingspheres und nen Octree... rechnet aber dann ggf runter bis auf dreick - dreick (Falls ich das richtig verstanden hab)
Das sollte also nicht umbedingt das Problem sein...
Selbstimplementieren ist für mich eher ne Notlösung... Faul und so ^^

Werbeanzeige