Aktuelle Zeit: 13.05.2025, 00:12

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: weiche Kamera Bewegung
BeitragVerfasst: 21.04.2009, 19:29 
Offline

Registriert: 24.02.2009, 20:21
Beiträge: 6
N abend

Die Kamera schrittweise um einen Punkt zu drehen funktioniert wunderbar. Wenn ich aber die Kamera allerdings um 180° schrittweise drehen will wartet er die Zeit, die er dafür bräuchte und zeigt das ganze erst dann an anstatt eine schöne Drehung zu machen.
Bekomm das einfach nicht auf die Reihe

Quellcode gibts hier: hier

So long


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: weiche Kamera Bewegung
BeitragVerfasst: 21.04.2009, 20:30 
Offline
Benutzeravatar

Registriert: 23.03.2009, 18:52
Beiträge: 23
Wohnort: Bremen
Hallo,

also ich würde mal spontan sagen, dass es daran liegt, dass du während du die Position der Kamera
aktualisierst [cam->setPosition(vector3df(cam_x,cam_z,cam_y)); Zeile 54], die Szene nicht neu zeichnest
und er daher zwar langsam die Kamera dreht, der Benutzer allerdings nichts davon mitbekommt, weil das
Programm ja so lange in der Schleife ist, bis die Kamera gedreht ist. Also gibt es zwei Möglichkeiten:

Entweder rufst du auch in der Schleife in der Drehfunktion die Methode zum Zeichnen der Szene auf,
oder du lagerst die Funktion zum Drehen in einen anderen Thread aus (ist aber aufwändiger und
je nach Anwendungsfall sinnvoll, oder auch nicht)

Gruß,
Carsten

_________________
Bit Happens!


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: weiche Kamera Bewegung
BeitragVerfasst: 22.04.2009, 10:07 
Offline
Benutzeravatar

Registriert: 23.06.2008, 07:21
Beiträge: 74
Wohnort: Dresden
Du benutzt eine Schleife um die Kamera um 180° zu drehen... Wieso?
Ich mein. Irrlicht braucht eine while() schleife, in der die Scene und die GUI gezeichnet werden. Kannst du nicht einfach einen Zähler außerhalb der Schleife deklarieren und in der Schleife je nach anwendungsfall den Zähler dann benutzen?
Dazu müsstest du in deinen Code bei der Klasse EventReceiver eine öffentliche methode hinzuschreiben, mit der du dann in deiner Hauptschleife überprüfen kann, ob Links oder Rechts gedrückt wurde.
Du bräuchtest auch noch eine Variable in der Die Taste gespeichert wird, die du gedrückt hast (Flag setzen).

Somit kannst du das Camera drehen in deiner Hauptscheife implementieren (oder in extra funktion).
Und du brauchst keine Globalen Variablen.

lg Michael

_________________
...then he said, "I can't feel my legs!" and I said "Joe! Stay with me Joe!" But it was ... to late. The garbage collector came and... he was gone. Best object I ever had.


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de