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

02.06.2013, 14:34

C# Habe ein paar kleine physikalische Fragen zu Farseer

1)Ich möchte einen Ball in einem vorher festgelegten Winkel abschiessen. Der Spieler kann den Winkel wählen. Das Problem ist, ich kann hier keinen Winkel eingeben:

C#-Quelltext

1
 ball.LinearVelocity = new Vector2(0, 3.0f);

Ist es nicht möglich irgendwie einen Winkel anzugeben, wie man es auch in XNA machen kann?
Beispiel: 300° Winkel

C#-Quelltext

1
MathHelper.ToRadians(300))


2)Wenn ich einen Ball abschiessen möchte, soll ich das dann mit LinearVelocity machen? Oder macht man das anders, z.B. mit einem Impuls? Der Ball bewegt sich vor dem Abschiessen nicht, die Geschwindigkeit beträgt also 0.

3)Wann braucht man Angular? Wie z.B. AngularVelocity und AngularDamping?

4)Was ist der Unterschied zwischen ApplyTorque und Rotation?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

02.06.2013, 17:57

1) Vektoren für einen Winkel mit Sinus und Cosinus auszurechnen sollte nun wirklich kein Problem sein. Da hilft Dir Google oder jedes Mathebuch.

2) LinearVelocity klingt sinnvoll.

3) Wenn etwas rollt oder sich dreht.

4 Torque ist eine Kraft-Wirkung. Was Du mit "Rotation" meinst ist mir nicht klar. ApplyTorque resultiert in einer Rotation.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

3

02.06.2013, 22:50


4) Torque ist eine Kraft-Wirkung. Was Du mit "Rotation" meinst ist mir nicht klar. ApplyTorque resultiert in einer Rotation.

Ich möchte dass sich der Ball während des Fluges in der Luft dreht. Es gibt ja "Ball.ApplyTorque" und "Ball.Rotation", jedoch wusste ich nicht so recht welches von beiden ich benutzen soll damit sich der Ball in der Luft dreht. Ich habe mich jetzt für Ball.ApplyTorque entschieden, sieht meiner Meinung nach realistischer aus.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

4

03.06.2013, 06:39

Aha, na ApplyTorque nutzt eine Krafteinwirkung. Rotation wird dann wohl das Farseer-Property-Equivalent zu SetAngularVelocity sein, was nicht natürlich wirkt, wenn ein Ball von 0 auf X Rotation springt. Wenn das schon beim Abschuss gemacht wird, ergibt beides aber identische Ergebnisse (sofern die Force zur Rotation passt).
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

5

12.08.2013, 22:53

Wie sollte man die Farseer-World am besten pausieren? Wenn man das Spiel pausiert soll ja auch die Farseer-World nicht weiter geupdatet werden.
Sollte man das wie in meinem Code machen oder kann man die Farseer-World auch anders pausieren:
In meiner Update-Methode steht:

C#-Quelltext

1
2
3
4
delta = (float)gameTime.ElapsedGameTime.TotalSeconds;
bool FarseerWorldPausieren = true;
if (FarseerWorldPausieren == false)
  world.Step(Math.Min(delta, (1f / 60f)));

6

12.08.2013, 23:53

Ist die step-Methode von der Zeit abhängig? Wenn ja nimm doch einfach 0.f als Zeit, dann bewegt sich nichts mehr.

EDIT: Farseer scheint ein ganz gutes Framework zu sein, daher sollte es eig. alle Simulationen framerate unabhängig ausführen. Daher müsste die Zeit auf 0.f setzen eig. funktionieren.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

7

13.08.2013, 07:01

Ruf einfach kein Step mehr auf, fertig ist der Lack.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

8

13.08.2013, 10:26

Oder so ;)

Werbeanzeige