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

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

11

19.06.2011, 11:43

Wenn man ganz Korrekt sein will sind das was er will meinentwegen Zylinderkoordinaten [...]

Und die sind 3D...

Mastermind

unregistriert

12

19.06.2011, 11:45

Aber keine Kugelkoordinaten, siehe EDIT oben...

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

13

19.06.2011, 11:51

Ja das war mein Irrtum, ich ging davon aus dass er nur nicht weiß dass er Kugelkoordinaten will. Dass er 3D will ist aber doch klar, ich seh also nicht warum ich da "fälschlicherweise" davon ausgegangen wär...

In der Majorität aller Spiele die ich kenne ist die Achse des Kameraorbits wenn es eins gibt fix und eben die Hochachse. Das liegt daran dass es meistens einen Boden gibt und "unter den Boden zu rotieren" keinen Sinn macht. Um das umzusetzen wird er keine Kugelkoordinaten brauchen und da der Rest seiner Engine offensichtlich kartesische Koordinaten verwendet machen sie es nur unnötig kompliziert.

Wenn man es ordentlich machen will braucht man Kugelkoordinaten da man mit einer einfachen Translation in y-Richtung niemals gescheit "von oben" draufschauen kann da Hochwinkel und Radius nicht unabhängig kontrollierbar sind. Abgesehen davon ging ich davon aus dass es dabei nicht unbedingt um ein Spiel sondern z.B. auch um einen Editor geht wo solche Kameras eigentlich zum Standardrepatoire gehören und er einfach auch nur sowas haben wollte. Wie gesagt war das eben offenbar ein Irrtum...

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »dot« (19.06.2011, 11:58)


Mastermind

unregistriert

14

19.06.2011, 12:01

(die Sinnhaftigkeit jemanden der den 2D Fall noch nicht verstanden hat mit dem 3D Fall zu konfrontieren mal außen vor gelassen)

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

15

19.06.2011, 12:05

Ja mea culpa, lassen wir das, bringt keinen weiter. Er weiß jetzt ja schon wie ers machen kann. Das ist wohl eben ein Problem wenn man ein "Profi" ist (ich bin im Übrigen (noch) nicht wirklich einer aber fühle mich geehrt dass du das von mir denkst ;) ), man interpretiert aufgrund der eigenen Erfahrungen überall immer gleich was rein was gar nicht unbedingt da ist...

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »dot« (19.06.2011, 12:18)


CookieWarrior

Frischling

  • »CookieWarrior« ist der Autor dieses Themas

Beiträge: 37

Beruf: Schüler

  • Private Nachricht senden

16

21.06.2011, 15:01

Leider klappt dieser Code bei mir immer noch nicht:

C-/C++-Quelltext

1
2
3
4
5
6
// Camera ausrichten
camera.setLookAt(player.getPosition());
float x = 50.f * sin(player.getRotation().y);
float y = 40.f + player.getPosition().y;
float z = 50.f * cos(player.getRotation().y);
camera.setPosition(sf::Vector3f(x, y, z));

Die Kamera dreht sich irgendwie immer wieder um den Spieler dabei soll sie ja eigentlich im Abstand von 50 hinter im positioniert sein.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

17

21.06.2011, 15:06

Kanns sein dass deine Rotationswinkel in Grad und nicht in Radiant sind?

CookieWarrior

Frischling

  • »CookieWarrior« ist der Autor dieses Themas

Beiträge: 37

Beruf: Schüler

  • Private Nachricht senden

18

21.06.2011, 15:27

Die sind in Grad und kann ich die damit(http://de.wikipedia.org/wiki/Radiant_(Ei…adiant_und_Grad) umrechnen?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

19

21.06.2011, 15:37

Na dort stehts eh: §1^\circ = \frac{\pi}{180}§ radiant, also

C-/C++-Quelltext

1
float angle_rad = angle_deg * pi / 180.0f;

CookieWarrior

Frischling

  • »CookieWarrior« ist der Autor dieses Themas

Beiträge: 37

Beruf: Schüler

  • Private Nachricht senden

20

21.06.2011, 15:46

Danke für die Hilfe funktioniert jetzt bei mir!

Werbeanzeige