Seite 1 von 1
Richtiger Umgang mit Screen und Programmwechsel
Verfasst: 08.04.2013 02:26
von OrangeJuice
Hallo, vielleicht hat ja einer von euch einen Tipp für mich.
Ich versuche gerade ein Template für Spiele zu schreiben um nicht jedes mal von vorne anzufangen. Da dachte ich mir, wenn ich schon so etwas mache, dann kann ich es auch gleich richtig und sauber machen und Fälle bedenken wie, dass Spiel wird minimiert oder ein anderes Programm drängt sich in den Vordergrund. Nun ja, ich kenne IsScreenActive, aber selbst damit schaffe ich es nicht das ganze so hinzubekommen, dass das Programm nicht abstürzt wenn es unterbrochen wurde. Ich wollte mir also anschauen wie WeaponzII damit umgeht und habe überrascht festgestellt, dass das auch abstürzt wenn es den Fokus verloren hatte.
Wie geht man mit Screen und Programmwechseln richtig um?
Re: Richtiger Umgang mit Screen und Programmwechsel
Verfasst: 12.04.2013 23:59
von ullmann
Re: Richtiger Umgang mit Screen und Programmwechsel
Verfasst: 15.04.2013 02:17
von OrangeJuice
Danke für die Lösung.
Das ist also eigentlich ein Bug? Das wäre ja ziemlich entmutigend, wenn so ein extremer Bug seit eineinhalb Jahren nicht gefixt wird, denn so kann man ein Spiel imho eigentlich heutzutage nicht mehr verteilen.
Re: Richtiger Umgang mit Screen und Programmwechsel
Verfasst: 26.05.2013 23:30
von Velox
Genau genommen ist es kein Bug.
Du erstellst ja eine Schleife die Du selbst im inaktiven Zustand weiterlaufen läßt.
Problem ist das die Befehle für Screen auch nur auf einem Screen und nicht auf dem Desktop funktionieren.
Hat vlt etwas mit DirectX Vorgaben oder sowas zu tun, keine Ahnung.
Ich selber schreibe mir jedes mal eine neue Variante aus meinen bisherigen Varianten, weil ich eine richtig gute bis perfekte Lösung suche.
Dabei verwende ich bisher 3 verschiedene Varianten, je nach Projekt (älter = Variante 1 (veraltet), letzte = Variante 2 (schon besser) und Variante 3).
Variante 1:
2 Variablen
- ScreenState 0 = inaktiv / 1 = aktiv
- WinState 0 = geschlossen / 1 = offen, minimiert
Variante 2:
1 Structure
- Eigentlich das selbe wie mit den Variablen, mit dem Vorteil alles zentral und einfacher handzuhaben
Variante 3:
1 Include die ich dann in jedes Projekt integrieren kann, wichtig ist noch zu erwähnen das ich diese Include spezifisch verwende. Bedeutet also nich zentral wo alle Projekte drauf zugreifen, sondern nur jeweils das spezifische.
Gruß
Velox
Re: Richtiger Umgang mit Screen und Programmwechsel
Verfasst: 29.05.2013 19:16
von ullmann
Basic steht für Anfänger-Programmiersprache.
Und der nötige Aufwand, um einen Screenwechsel korrekt zu handhaben, ist nicht anfängerfreundlich gelöst.
Solche Dinge, sollte einem jedes Basic-System schon abnehmen.
Bei PureBasic muss man dagegen halten, dass es nur von einem sehr kleinen Team und lowcost entwickelt wird
und trotzdem bisher schon beachtlich viel erreicht wurde.
Re: Richtiger Umgang mit Screen und Programmwechsel
Verfasst: 10.06.2013 13:29
von Velox
@OrangeJuice: Problem gelöst bekommen? Sonst programmiere ich dir heute Abend mal nach der Arbeit, ein Beispiel.
Das Beispiel im oberen Link, scheint mir weniger Anfängerfreundlich, zudem sind die Comments in Französisch gehalten oder kann hier wer Französisch? ^^
Gruß
Velox
Re: Richtiger Umgang mit Screen und Programmwechsel
Verfasst: 21.06.2013 09:40
von Chimorin
So wie ich das sehe, wird der (oder das) Screen, wenn er minimiert wird, geschlossen und ein Fenster mit demselben Namen geöffnet, aber im Hintergrund?
Will man nun dieses Fenster wieder vorne haben (Taskleiste), wird das Fenster geschlossen und der Screen wieder geöffnet, d.h., man muss wieder alles neu aufsetzen (Entities,...).
Hört sich für mich nach Gemurkse an, machen das Spielehersteller genauso?!
Re: Richtiger Umgang mit Screen und Programmwechsel
Verfasst: 13.05.2014 15:00
von Velox
@Chimorin:
Tatsächlich macht das ganz den Anschein, dass die "großen" Spielehersteller das genauso machen.
Unter Windows 7 zeigen mir manche Spiele ein Fenster mit einem Screenshot des letzten Bildes an, das zuletzt im Vollbild (Screen) angezeigt wurde.
Die Spielehersteller bei denen mir das aufgefallen ist, sind unter anderen "EA" und "Ubisoft".