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

rklaffehn

Treue Seele

Beiträge: 267

Wohnort: Braunschweig

  • Private Nachricht senden

31

31.07.2006, 07:36

Hoppla, das mit dem 3 Komponenten ist blos ein Versehen gewesen. Die Vektoren sollten ja nur zwei Komponenten haben. Ich jeden blos überwiegend in der 3D Welt (ist berufsbedingt :))

Allerdings benutzt man sowohl im 2D als auch im 3D jeweils eine Vektorkomponente zusätzlich, weil man dann Rotation, Skalierung und Verschiebung durch eine 3x3 bzw 4x4 Matrix ausdrücken kann. Ohne die überzählige Komponente wäre Verschiebung nicht möglich. Diese Komponente ist aber immer 1, sonst klappt's nicht.

Wenn ich das richtig sehe, benutzt David das in seinem Buch auch so. (gelesen habe ich das Kapitel aber nicht, transformieren konnte ich vorher schon 8))

MfG,
Rainer
God is real... unless declared integer.
http://www.boincstats.com/signature/user_967277_banner.gif

spacegaier

Alter Hase

  • »spacegaier« ist der Autor dieses Themas

Beiträge: 572

Beruf: Student

  • Private Nachricht senden

32

31.07.2006, 21:05

Was nimmt am besten um die Zeit für die Bewegung zu kriegen?

@rklaffehn: GetLastTickCount ist dir ja nicht bekannt. Womit arbeitest du?

Und du räts von WM_Timer ab. Gilt dies allgemein für WM_-Nachrichten?

Wenn ja, wie soll ich dann die Move-Funktion (oder überhaupt die Bewegungen) einbauen?

rklaffehn

Treue Seele

Beiträge: 267

Wohnort: Braunschweig

  • Private Nachricht senden

33

31.07.2006, 21:30

Zitat von »"spacegaier"«

Was nimmt am besten um die Zeit für die Bewegung zu kriegen?

@rklaffehn: GetLastTickCount ist dir ja nicht bekannt. Womit arbeitest du?


Ich arbeite mit QueryPerformanceCounter (oder so), aus dem weiter oben von mir genannten Link (MSDN).

Zitat


Und du räts von WM_Timer ab. Gilt dies allgemein für WM_-Nachrichten?


WM_TIMER kann man benutzen, um sich nach einer (relativ) festen Zeit selbst eine Nachricht in der Windows-Nachrichtenschleife zu schicken. Das ist aber nicht besonders genau, also für Simulationen nicht besonders geeignet. Das ist auch der Grund, warum ich dir davon abgeraten habe.

Die übliche Render-Schleife basiert ja darauf, dass man ständig WM_PAINT Meldungen bekommt. Der Unterschied ist, WM_PAINT bekommt man so schnell wie Windows das zulässt, WM_TIMER bekommt man immer mit einem quasi festen Abstand. K.A. ob man Timer auch mit Deltazeit 0 absetzen kann... aber selbst wenn, warum sollte man seine Render-Schleife anders bauen als alle anderen? 8)

Also: nein, ich rate nicht generell von WM_* Meldungen ab. Unter Windows kommt man einfach nicht drum rum. :D Eigentlich wollte ich nur verhindern, dass du gleich auf den falschen Zug aufspringst, wenn du die MSDN Seite liest. ;)

Zitat


Wenn ja, wie soll ich dann die Move-Funktion (oder überhaupt die Bewegungen) einbauen?


Ein Weg, wie man sowas machen kann, steht in Davids Buch auf Seite 8 bis 12 (3. Auflage, Kapitel 1.2.4: Das Problem mit der Zeit)

MfG,
Rainer
God is real... unless declared integer.
http://www.boincstats.com/signature/user_967277_banner.gif

Werbeanzeige