#1 09.01.2013 17:18:33

Peter-Pascal
Member
Registriert: 26.02.2007
Beiträge: 63

Schleife programmieren statt onIdle

Hallo zusammen,

beim Durcharbeiten des Buches von Martin läuft es mit der onIdle Methode gut. Nur, kann man auf diese Weise auch ein Spiel programmieren oder ist da eine Schleife nicht sinnvoller?

Wenn ja, frage ich mich, wie das mit der Schleife funktionieren kann, wenn DirektX im Windows-Modus läuft. Also ich habe einfach eine Repeat-Schleife genommen (While-Scheife dürfte das gleiche sein), aber ich weiß nicht, wie ich die Beantwortung der Befehle (Menü, Buttons, etc.) in der Schleife berücksichtigen kann.

Gibt es da eine bestimmte Lösung?

Gruß Peter


Heute ist nicht alle Tage – ich komm wieder, keine Frage

Offline

 

#2 09.01.2013 19:44:11

Gnietschow
ProMember
Ort: Berlin
Registriert: 20.06.2007
Beiträge: 237

Re: Schleife programmieren statt onIdle

Also vom Prinzip her funktioniert onIdle ganz gut, wir haben schon ein ganzes Echtzeitspiel damit gebaut. Aber ob eine Schleife sinnvoller ist weiß ich nicht, müsste man mal gegeneinander testen smile

Innerhalb der Schleife müsste man dann wahrscheinlich nur Application.ProcessMessages aufrufen, damit die an das Fenster geschickten Messages wie Mausklicks etc. verarbeitet werden. Oder man müsste einen eigenen Messagehandler basteln und diese dann in der Schleife immer abarbeiten.

MfGnietschow


Es gibt 10 Gruppen von Menschen - die die das Binärsystem verstehen und die anderen.  :-)
Vegetarier essen meinem Essen das Essen weg ;)
-------------------------------------------------------------------------------------------------------------------
Der Community-Hub für Videospiele: gameloop.io

Offline

 

#3 09.01.2013 20:26:03

Peter-Pascal
Member
Registriert: 26.02.2007
Beiträge: 63

Re: Schleife programmieren statt onIdle

Ansich bin ich mit onIdle immer ganz gut gefahren und ohne Not wollte ich auch daran nichts ändern. Nur einige Bücher über DirectX, die alle mit C oder C++ arbeiten, wird immer eine Schleife vorangestellt und wollte das auch mal ausprobieren.

Allerdings kommt die Überlegung mit der Schleife auch daher, weil irgendwann die 3D-Animation nicht mehr dargestellt wurde und nicht mehr zu starten war aus dem laufenden Programm heraus. Ich hatte das Programm mehrere Stunden laufen lassen. Beim Neucompilieren lief die Anwendung natürlich wieder. Ich weiß nicht woran das liegt. Ich weiß auch nicht wo ich suchen soll. Ich nahm an, das liegt an onIdle. Es würde irgendwann einfach nicht mehr arbeiten.

Und sonst sehe ich allerdings auch keinen Vorteil den eine Schleife bringen soll, eher ist es mit onIdle sogar noch einfacher.

Das Echzeitspiel ist das Dein Planetenspiel?

Gruß Peter


Heute ist nicht alle Tage – ich komm wieder, keine Frage

Offline

 

#4 09.01.2013 21:08:44

Gnietschow
ProMember
Ort: Berlin
Registriert: 20.06.2007
Beiträge: 237

Re: Schleife programmieren statt onIdle

Genau, bei allen Spielen haben wir bisher onIdle verwendet. Den Fehler den du hattest hatten wir auch, wenn ein Programm länger läuft, fror es irgendwann ein, hmm... Bei nächster Gelegenheit werd ich vielleicht mal zwei identische Programme mal testen, was so onIdle und Schleife an Unterschied macht.

MfGnietschow


Es gibt 10 Gruppen von Menschen - die die das Binärsystem verstehen und die anderen.  :-)
Vegetarier essen meinem Essen das Essen weg ;)
-------------------------------------------------------------------------------------------------------------------
Der Community-Hub für Videospiele: gameloop.io

Offline

 

#5 10.01.2013 08:30:05

Peter-Pascal
Member
Registriert: 26.02.2007
Beiträge: 63

Re: Schleife programmieren statt onIdle

Danke für die Antwort.

Hast Du irgendeine Idee warum DirectX einfror? Bislang habe ich immer im Windowsmodus DirectX ablaufen lassen und konnte feststellen, dass Windows funktionierte, nur DirectX nicht mehr. Wobei ich es noch nicht ausprobiert habe, und es im Programm auch bisher nicht möglich ist, alles zu beenden und neu zu initialisieren (neu starten).

Könnte es sein, dass es mit dem Bildschirmschoner (Energieverwaltung, Sparmodus) zusammenhängt und onIdle irgendwann "abgeschaltet" wird?


Heute ist nicht alle Tage – ich komm wieder, keine Frage

Offline

 

Brett Fußzeile

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson