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

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

11

29.08.2007, 17:42

also der diff-vektor ist für jeden winkel richtig das ist sicher. es liegt warscheinlich an der acosf bzw. atan2 funktion. wenn ich mich recht entsinne arbeitet diese nur richtig für den bereich 0 bis 1. du musst entsprechend vorher prüfen, im welchen bereich der cos-wert liegt. wenn er kleiner null ist, bildest du 1.0f+winkel. ansonsten müsst ich mal länger nachdenken

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

12

29.08.2007, 17:59

Zitat von »"TrommlBomml"«

Zitat von »"David_pb"«

Einfach:

C-/C++-Quelltext

1
float a = atan2( y, x ) * 180.0 / PI;


kannst du mir mal bitte erklären wie du darauf gekommen bist? Bin zwar Mathe leistungskurs aba die formel macht mir sorgen... :roll:


Wieso?

Pseudocode:

C-/C++-Quelltext

1
2
3
4
5
6
Vec2D mousePos = GetMousePos();
Vec2D v = mousePos - playerPos;
float angle = atan2f( v.y, v.x ) * 180.0f / PI;
float rotx = cosf( angle ) * playerPos.x - sin( angle ) * playerPos.y;
float roty = cosf( angle ) * playerPos.y + sin( angle ) * playerPos.x;
DrawLine( playerPos.x, playerPos.y, playerPos.x + rotx, playerPos.y + roty );


Der Spieler sollte halt standardmäßig an der positiven X Achse ausgerichtet sein. Denn atan2 macht ja genau das, den Winkel zur Positiven X Achse liefern.
@D13_Dreinig

ChrisJ

Alter Hase

Beiträge: 487

Wohnort: Schweich

Beruf: Schüler

  • Private Nachricht senden

13

29.08.2007, 18:22

so wie ich das verstehe:

x/y ist der tangens von der mausposition zum ursprung. also die steigung.
atan2 berechnet daraus den winkel, der allerdings im bogenmaß ausgegeben wird. daher wird der noch in den normalen winkel umgerechnet.

stimmt das so??? :?
"Don't trust your eyes: They are a hell of a lot smarter than you are"

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

14

29.08.2007, 18:26

Zitat von »"ChrisJ"«

so wie ich das verstehe:

x/y ist der tangens von der mausposition zum ursprung. also die steigung.
atan2 berechnet daraus den winkel, der allerdings im bogenmaß ausgegeben wird. daher wird der noch in den normalen winkel umgerechnet.

stimmt das so??? :?


Richtig! :)
@D13_Dreinig

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

15

29.08.2007, 20:20

Du hast Mathe-Leistungskurs?!
Was man hierzu braucht, ist einfachste Trigonometrie, die man schon in der Unterstufe lernt.

Phili

unregistriert

16

29.08.2007, 21:28

@David Scherfgen
Trigonometrie : 10. Klasse
Vektoren : 11. Klasse (glaub ich, komm selbst erst in die 11.)
Unterstufe ist des dann auch wieder nicht ;)

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

17

29.08.2007, 21:56

10 is doch so gut wie Unterstufe! ;)
@D13_Dreinig

Helmut

5x Contest-Sieger

Beiträge: 692

Wohnort: Bielefeld

  • Private Nachricht senden

18

29.08.2007, 23:35

Naja, also als Spieleprogrammierer sollte man ja soweit interessiert sein, dass man sich das in der Unterstufe selbst beibringt;)
Sei stets geduldig gegenüber Leuten, die nicht mit dir übereinstimmen. Sie haben ein Recht auf ihren Standpunkt - trotz ihrer lächerlichen Meinung. (F. Hollaender)

Anonymous

unregistriert

19

30.08.2007, 14:38

Habe ich leider aber nicht.
Ich habe bisher jede Methode die hier genannt wurde, ausführlich ausprobiert, aber es kommt immernoch zu den gleichen, von mir beschriebenen Problemen???
Hat keiner von euch "Mathe-Cracks" eine funzende Lösung?

Grüße F*R*E*D*E

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

20

30.08.2007, 14:41

Meine Lösung "funzt"! Habs sogar nochmal ausprobiert. Zeig halt her deinen Code, evtl übersiehst du ja einfach nen kleinen Fehler.
@D13_Dreinig

Werbeanzeige