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

Saik0

Treue Seele

  • »Saik0« ist der Autor dieses Themas

Beiträge: 171

Beruf: Anwendungsentwickler

  • Private Nachricht senden

1

18.10.2011, 14:45

Statemanagement mit Allegro

Hallo zusammen,

ich hoffe hier treiben sich ein paar Allegro Experten rum, die mir etwas weiter helfen können. Ich bin dabei mir einen Pong Klon zu schreiben und versuche das ganze so zu implementieren, dass ich einiges an Code für andere Spiele weiter verwenden kann. Jetzt bin ich an einem Punkt wo ich mir nicht ganz über das Verfahren sicher bin.

Allegro hat die Eigenschaft, sämtliche Elemente(Bitmaps etc) zu vernichten, wenn das Spiele Fenster den Focus verliert. z.B beim Minimieren oder wenn man vom Spiel zum Firefox wechselt etc. Hat das Spiele Fenster wieder den Focus ist der Bildschirm nur schwarz. Laut google und diversen Foren Threads müsste ich den aktuellen Stand (Position der Bitmaps, etc) speichern, wenn der Focus verloren geht und wiederherstellen, wenn das Spiel den Focus wieder erlangt hat.

Dabei stellen sich mir folgende Fragen:

1) Reicht es eine Klasse zu schreiben, in der ich sämtliche wichtigen Informationen zum aktuellen Spielstand speichere
2) Ist das ein allgemeines Problem in der Spieleentwickung

Mich würde noch interessieren wie ihr das gelöst habt.

schon mal danke dafür
lg Saik0

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

2

18.10.2011, 15:17

Sicher dass Bitmaps vernichtet werden? Ich glaube nicht dass die Objekte im Speicher vernichtet werden, sondern dass der Bildschirm einfach nur überschrieben wird. Also das aktuelle Bild. Einfach alles noch mal rendern. Kann mich jedenfalls nicht dran erinnern alles neu laden zu müssen nach minimieren etc.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Saik0

Treue Seele

  • »Saik0« ist der Autor dieses Themas

Beiträge: 171

Beruf: Anwendungsentwickler

  • Private Nachricht senden

3

18.10.2011, 15:43

ok, ich muss mich an dieser Stelle korrigieren. Die Bitmaps sind noch da, werden aber erst nach einiger Zeit neu gezeichnet.

Minimier ich das Fenster mit _ und maximiere es wieder, braucht das ganze etwa 2 Sekunden bis wieder alles gezeichnet ist.
Wechsel ich den Focus mit ALT + TAB oder verschiebe das Fenster an einer anderen Position dauert das neu zeichnen extrem lange..

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

4

18.10.2011, 15:48

Kann mich nicht daran erinnern jemals solche Probleme gehabt zu haben. Du könntest doch gucken, dass das Programm auch weiter läuft wenn es keinen Fokus hat.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Saik0

Treue Seele

  • »Saik0« ist der Autor dieses Themas

Beiträge: 171

Beruf: Anwendungsentwickler

  • Private Nachricht senden

5

19.10.2011, 13:12

mh so wie es aussieht, läuft das Spiel weiter, wenn es keinen Focus hat. Nachdem ich was an der FPS Zahl gedreht habe, gibt es zumindestens keine Verzögerung mehr, wenn man das Spiel minimiert. Der Rest ist unverändert.. sehr merkwüridg das ganze. Werde mal weiter forschen, danke

Werbeanzeige