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

ERROR

Alter Hase

  • »ERROR« ist der Autor dieses Themas

Beiträge: 417

Wohnort: Paderborn

Beruf: Informatik Student

  • Private Nachricht senden

1

13.10.2013, 18:44

Berechnung der Schussposition

Heyho,

Ich habe einen Pfeil (soll einfach ein beliebiges Sprite mit Blickrichtung symbolisieren), diesen Pfeil kann ich schön bewegen (A und D: rotieren, W und S Vor-,bzw Rückwärts).

Der Pfeil kann auch schon schiessen, die Schüsse fliegen im richtigen Winkel, aber starten leider nicht an der richtigen Position.

Origin des Pfeils ist width/2, height/2 .

Mein Problem ist jetzt "nur" die Berechnung der richtigen Startposition so, dass die Schüsse immer genau aus der Spitze fliegen.

Ich denke da wird kein SourceCode benötigt, weil es wohl eine einfache Rechnung ist, ich aber ziemlich auf dem Schlauch stehe.


Ich hoffe ihr versteht was ich meine und ein grosses DANKE schon im voraus ;)

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

13.10.2013, 19:10

Stichworte Sinus und Cosinus.
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]

ERROR

Alter Hase

  • »ERROR« ist der Autor dieses Themas

Beiträge: 417

Wohnort: Paderborn

Beruf: Informatik Student

  • Private Nachricht senden

3

13.10.2013, 19:14

Das weiss ich ja, mit denen habe ich die Drehungen von Schuss und Pfeil berechnet. Aber ich komme einfach nicht drauf, wie ich aus der Position des Pfeils( also die Mitte) den Punkt berechnen kann, wo die Spitze grade ist.

EDIT: Die Schüsse fliegen bei mir ja korrekt, starten nur an der falschen Position :( :dash:

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

4

13.10.2013, 19:30

Bei der Position der Spitze machst Du doch aber auch nichts anderes als einen Punkt per Sinus und Cosinus auf einer Kreisbahn zu bewegen, bzw. ihn um den Mittelpunkt des Pfeils zu rotieren!?
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]

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

5

13.10.2013, 21:05

Vektorrechnung?

ERROR

Alter Hase

  • »ERROR« ist der Autor dieses Themas

Beiträge: 417

Wohnort: Paderborn

Beruf: Informatik Student

  • Private Nachricht senden

6

13.10.2013, 21:10

Also um den Pfeil zu drehen benutze ich sprite.setRotation(angle); .

Sinus und Cosinus kommen ins Spiel, wenn ich die Bewegung (Vorwärts und Rückwärts) berechne. Allerdings passiert das (zumindest bei mir) mehr in einem Dreieck als in einem Kreis.

So Berechne ich dann die Bewegung des Pfeils.

C-/C++-Quelltext

1
2
distance.x = cos(spr.getRotation() * (3.1415926535/180)) * velocity;
distance.y = sin(spr.getRotation() * (3.1415926535/180)) * velocity;


Ich versuche mir von den oben stehenden Formeln einen Weg herzuleiten um die Position der Spitze des Pfeils zu berechnen, leider klappt es nicht.

So etwas hatte ich (bisher) nie im Unterricht und deswegen kenne ich mich da leider nicht so gut aus.


EDIT: DeKugelschreiber war schneller:D
Verktorrechnung kommt als letztes Thema vor unseren Anschlussprüfungen. Diese sind aber erst im Mai.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

7

13.10.2013, 22:09

Wenn Du die Bewegungsrichtung schon kennst, ist die Spitze des Pfeils doch genau in derselben Richtung.
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]

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

8

13.10.2013, 22:32

Die Position der Spitze einfach mit der Rotationsmatrize multiplizieren.

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

9

13.10.2013, 22:58

Wenn du Spiele entwickeln möchtest lohnt sich lineare Algebra und Vektorrechnung/Matrizenrechnung auf jeden Fall ;)
Schaus dir am besten jetzt schon an, gerade Vektorrechnung ist im Grunde simpel.

ERROR

Alter Hase

  • »ERROR« ist der Autor dieses Themas

Beiträge: 417

Wohnort: Paderborn

Beruf: Informatik Student

  • Private Nachricht senden

10

14.10.2013, 16:19

Dann werde ich mich damit mal auseinandersetzen.

Ich denke mal dass ein Buch da eine gute Wahl wäre, folgende Bücher werden hier oft empfohlen:

Mathematics for 3D Game Programming and Computer Graphics

3D Math Primer for Grpahics and Game Development

Wenn ich es richtig verstehe bekommt man in beiden Büchern von Vektorrechnung alles wichtige beigebracht. Lohnt es sich direkt eines der Bücher zu kaufen? und wenn ja welches?

Werbeanzeige