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?
Richtiger Umgang mit Screen und Programmwechsel
-
- Beiträge: 15
- Registriert: 24.07.2010 13:00
Re: Richtiger Umgang mit Screen und Programmwechsel
Hier ist ein Workaround für das bekannte Problem:
http://www.purebasic.fr/german/viewtopi ... 34#p293534
http://www.purebasic.fr/german/viewtopi ... 34#p293534
-
- Beiträge: 15
- Registriert: 24.07.2010 13:00
Re: Richtiger Umgang mit Screen und Programmwechsel
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.
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
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
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
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.
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
@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
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
- Chimorin
- Beiträge: 451
- Registriert: 30.01.2013 16:11
- Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit
Re: Richtiger Umgang mit Screen und Programmwechsel
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?!
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
@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".
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".