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

15.12.2009, 11:17

Worms Clon 3D

Hallo,

Ich bin gerade dabei einen kleinen Worms Clon in 3D zu programmieren.
Man kann den Spieler schon bewegen und die Waffe (Ball) auch schon abschiesen.
Nun mein Problem:
Ich weiß nicht genau wie ich die Flugbahn des Balles berechnen soll.
Mit der Gravitation ist es kein Problem, nur weiß ich nicht wie ich die Flugbahn in Abhängigkeit des Startwinkels berechnen soll, die Flugbahn bleibt immer gleich egal wie ich den Winkel ändere.

Ich hoff mir kann jemand helfen :)

Mfg Cupra

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

15.12.2009, 11:24

Ich denk das könnte mal n guter Ausgangspunkt sein: http://de.wikipedia.org/wiki/Wurfparabel

3

15.12.2009, 11:36

ok danke schonmal.
Nur weiß ich jetzt nicht genau was ich mit der z-Achse anfangen soll.

Mfg Cupra

Databyte

Alter Hase

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

4

15.12.2009, 11:59

Für die z-achse gilt das gleiche wie für x-achse... also würd ich sagen, dass du für x einfach einen vektor einsetzt, der auch z enthält...
dann musst du natürlich einige Sachen leicht anderes berechnen aber das sollte nicht so schwer sein...

5

15.12.2009, 13:02

Ich bin allerdings der Meinung, das Spiele wie Worms nur in 2D funktionieren.
Lieber dumm fragen, als dumm bleiben!

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

6

15.12.2009, 13:14

Zitat von »"Jonathan_Klein"«

Ich bin allerdings der Meinung, das Spiele wie Worms nur in 2D funktionieren.


Jop, ich auch

Databyte

Alter Hase

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

7

15.12.2009, 13:21

Ich hab mir damals das Worms Castle vom Freund ausgeliehen... und die idee war ganz geil..
aber 2d hätte es nochmehr spaß gemacht...

8

15.12.2009, 13:26

Ja da habt ihr schon recht, es wird mein erstes 3D Spiel, deshalb dacht ich des müsste nicht so schwer sein und mir viel nichts besseres ein.. :)

Was hättet ihr so für Ideen? Was wär für ein erstes größeres Projekt gut?

Mfg Cupra

K-Bal

Alter Hase

Beiträge: 703

Wohnort: Aachen

Beruf: Student (Elektrotechnik, Technische Informatik)

  • Private Nachricht senden

9

15.12.2009, 13:36

Zitat von »"Jonathan_Klein"«

Ich bin allerdings der Meinung, das Spiele wie Worms nur in 2D funktionieren.


Ich frage mich, wie deine Meinung Cupra helfen soll, seine Geschossbahn zu berechnen :P Lass ihn doch einfach mal machen, vielleicht entwickelt er ja eine geniale Spielmechanik, die es in 3D total geil macht.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

10

15.12.2009, 15:25

Gut, also eigentlich sollte das recht einfach sein da du die Flugbahn an sich gar nicht berechnen musst.
Du berechnest ja vermutlich jetzt schon die Zeitdifferenz dt von einem Frame zum nächsten und bewegst deine Objekte dann um die entsprechende Zeitspanne weiter. Mit deinen Projektilen kannst du das ganz gleich machen.
Jedes Projektil hat eine momentane Position und Geschwindigkeit. In jedem Frame bewegst du das Projektil entsprechend seiner aktuellen Geschwindigkeit und Beschleunigung weiter. Die momentane Beschleunigung bekommst du indem du die resultierende aller Kräfte die auf das Projektil wirken (Gewichtskraft + Luftwiderstand) durch die Projektilmasse teilst. Position, Geschwindigkeit und Beschleunigung sind normale 3D Vektoren.
Das weiterbewegen kannst du mit der altbekannten Formel:

p += v * dt + a * dt^2 / 2

machen. Das Geschwindigkeitsupdate schaut so aus:

v += a * dt

Den Luftwiderstand kannst du mit nem quadratischen oder linearen Widerstandsgesetz approximieren. Das quadratische entspricht eher dem physikalischen Modell, würd aber schaun was besser kommt:

Fw = k * v^2

oder

Fw = k * v

je nachdem, wobei k ein Widerstandsfaktor ist der die Form des Objektes und die Dichte der Luft berücksichtigt (wenn dus genauer wissen willst siehe hier und hier).
Damit solltest du eine schöne ballistische Kurve hinbekommen ;)

Werbeanzeige