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

miko93

Frischling

  • »miko93« ist der Autor dieses Themas

Beiträge: 14

Wohnort: Regensburg

  • Private Nachricht senden

1

03.01.2004, 15:11

Nachrichtenschleife: W32 oder mfc-Dialog ?

Hallo Leute,

In Davids Buch (und bei vielen anderen) wird ja die Nachrichtenschleife eines Fullscreen-Spiels "pur" in die WinMain einer W32-Anwendung eingesetzt. Das ist wohl auch das sinnvollste.

Bei meinen bisherigen Versuchen, eine DX-Anwendung zu schreiben, habe ich eine etwas andere Vorgehensweise gewählt (einfach, weil ich es nicht besser wusste - immer nur mfc-Dialog-Anwendungen, das prägt halt ;D ):

Mfc-Dialog-Anwendung erzeugt, Dialog maximiert, DX-Objekte erzeugt usw.
Von der App::OnIdle dann die eigentlichen Render- und Move-Routinen aufgerufen. Auf diese Weise konnte ich die ganzen Behandlungsroutinen des Dialogfeldes (OnMouseMove, OnMouseWheel, etc. blabla) benutzen, und musste - z.B. bei einem Strategiespiel (im Vollbildmodus) - kein DirectInput 'reinnehmen.

Was meint Ihr dazu ? Ist das einfach nur Overkill, oder eine durchaus gängige Methode ?

Euer miko


PS: Das Buch gefällt mir sehr gut (auch wenn ich erst auf Seite 100 bin, hehe)

edit: typo

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

2

03.01.2004, 18:13

Ja klar kannste das so machen, allerdings müsste das langsamer als die Version mit der WINAPI sein. Da MFC ja Klassen zur Verfügung stellt, die eigentlich ja auch wieder nur die WINAPI aufrufen. Also machen es veiel gelich mit der puren WINAPI.

Um umfangreiche Tool (z.B. Leveleditoren) zu schreiben empfehle ich dir allerdings auch WINAPI zu verwenden. Mit MFC geht das zwar leichter, allerdings auch nur bei Visual C++. Mit anderen Compilern, vonj Borland / Inprise z.b. musst du VCL verwenden, diese unterscheiden sich von den MFC's und sind (soweit ich weiss, auch nicht kompitabel)