Seite 5 von 6
Verfasst: 03.06.2009 00:09
von Fluid Byte
Das Problem ist dass man keinen Screen öffnen kann wenn das Spiel (in meinem Fall Day of Defeat: Source / DX9) im Vordergrund ist. OpenWindowedScreen () gibt dann null zurück. Der Screen muss geöffnet werden wenn man sich auf dem Desktop befindet.
Verfasst: 03.06.2009 01:02
von Andreas21
Und was währ wenn man beim starten des Overlays den desktop an die auflösung des Spieles anpast und nach der erstellung wieder zurück setzt?
Verfasst: 03.06.2009 23:47
von Fluid Byte
Andreas21 hat geschrieben:Und was währ wenn man beim starten des Overlays den desktop an die auflösung des Spieles anpast und nach der erstellung wieder zurück setzt?
Ja, des geht tatsächlich. Man muss
vor dem Öffnen des Screens die Desktopauflösung ändern und dann ein Delay() von
mindestens 2000 Ms einfügen.
Code: Alles auswählen
; Change desktop resolution to game resolution
Define lpdm.DEVMODE\dmSize = SizeOf(DEVMODE)
lpdm\dmFields = #DM_BITSPERPEL | #DM_PELSWIDTH | #DM_PELSHEIGHT
lpdm\dmBitsPerPel = 32
lpdm\dmPelsWidth = 1600
lpdm\dmPelsHeight = 900
ChangeDisplaySettings_(lpdm,0)
Delay(2000)
Allerdings ist es immer beschissen mit Delays zu arbeiten da die Zeiten auf jedem Computer unterschiedlich sind. Mann müsste irgendwie feststellen können wann die Auflösung erfolgreich umgestellt wurde.
Das nächste Problem wäre dann wie man den Inhalt des Overlays aktualisiert. Nach dem es erstellt wurde kann man nicht einfach auf das Sprite zeichnen. Man müsste das Sprite/Overlay löschen, neues Sprite erstellen, zeichnen und wieder Overlay erstellen. Ich glaube aber es geht vielleicht auch direkt per DD auf das Overlay zu zeichnen ohne alles zu löschen/neu erstellen zu müssen ist dann aber etwas "anspruchsvoller".
Verfasst: 04.06.2009 00:54
von Kaeru Gaman
> Mann müsste irgendwie feststellen können wann die Auflösung erfolgreich umgestellt wurde.
man kann doch die aktuelle auflösung prüfen... sogar mit nativen PB mitteln...
Verfasst: 04.06.2009 01:42
von Fluid Byte
Kaeru Gaman hat geschrieben:man kann doch die aktuelle auflösung prüfen... sogar mit nativen PB mitteln...
Damit kann man ermitteln
wann die Auflösung erfolgreich geändert wurde? Wage ich zu bezweifeln ...
Ich meine sowas wie GetGadgetAttribute() in Verbindung #PB_Web_Busy. Also das man irgendwie einen booleschen Wert auslesen kann der angibt wenn das Ändern der Auflösung erfolgreich abgeschlossen wurde.
Verfasst: 04.06.2009 02:02
von Kaeru Gaman
> Damit kann man ermitteln wann die Auflösung erfolgreich geändert wurde?
türlich, du testst im 50ms abstand welche auflösung anliegt...

Verfasst: 04.06.2009 02:29
von Fluid Byte
Beispiel?
Verfasst: 04.06.2009 02:43
von Kaeru Gaman
meine Güte, geh ins Bett.
Verfasst: 04.06.2009 15:45
von Fluid Byte
Was zum .....
Sagt der der um 2:43 postet? Kommst du klar? Was soll diese unfreundliche, ausweichende Antwort? Ich habe lediglich um Beispielcode gebeten den du offenbar nicht im Stande bist zu liefern. Wenn zu dem Thema nichts beitragen kannst dann halt dich raus!

Verfasst: 04.06.2009 16:19
von Kaeru Gaman
weil du kurz vorher in einem anderen thread eine blöde bemerkung zu etwas fleißig umgebrochenem postingtext abgelassen hast.
und dann fragst du mit einem einzigen wort = wortkarg nach einem beispiel für etwas,
was 1. integriert werden müßte und 2. dir doch tausend mal geläufig sein sollte.
und das, ganz richtig, nach zweie nachts, wo ich mich wohl kaum noch hinsetze und nen beispielcode häcke,
den du selber erdenken können solltest, wenn ich deine fähigkeiten nicht grottentief überschätze.
meine schlußfolgerung war, du bist entweder zu müde oder zu duhn oder beides.
daher mein meiner ansicht nach angemessener rat, erstmal ins bett zu gehen.
war das jetzt nachvollziehbar?