ExamineDesktops()

Anfängerfragen zum Programmieren mit PureBasic.
PB42
Beiträge: 243
Registriert: 13.10.2005 03:21

ExamineDesktops()

Beitrag von PB42 »

Hallo,
ExamineDesktops() soll ja bewirken, daß das Programm die Einstellungen des Desktops übernimmt (Auflösung). Ist das zwingend nötig, wenn man ein eigenes Programm an andere Computerbenutzer weitergeben will? Mir fällt auf, daß die beiden Beispielprogramme, welche von PB in den Demo-Versionen mitgeliefert werden, ohne ExamineDesktops() auskommen und demzufolge wußten die Programmierer vorher, daß diese Programme auch ohne ExamineDesktops() auf jedem Rechner schön laufen. Was also ist das besondere an ExamineDesktops() und wie müßte man folgenden Programm-Beginn umschreiben, um ExamineDesktops() einbinden zu können?

Code: Alles auswählen

InitSprite() 
InitKeyboard() 
OpenScreen(640,480,32,"")
Danke.

PB42
Benutzeravatar
Franky
Beiträge: 1132
Registriert: 29.08.2004 16:31
Wohnort: Münsterland
Kontaktdaten:

Beitrag von Franky »

Hallo PB 42

Zuerstmal: Es ist nicht notwendig, das ganze bei OpenScreen zu nutzen. Beim Screen kann die Auflösung beliebig geändert werden.

ExamineDesktops kann ich zum Beispiel bei Fenstern anwenden.

Hast du zum Beispiel ne Auflösung von 1200*800 und machst ein Fenster, dass diese Auflösung voll ausnutzt, ist es für deinen Rechner perfekt.

Wenn du es veröffentlichst, meckere ich aber, denn ich sehe es nicht ganz, da ich nur ne Auflösung von 1024*768 habe.

Du könntest das ganze nun Dynamisch machen, indem du bei allen Gadgets die Positionen und Ausmasse nur relativ zu den Fensterausmaßen angibst und das Fenster mit DesktopWidth(0) und Desktopheight(0) dimensionierst. So kann ich alles sehen und du hast trotzdem ein Vollbildfenster.

Bei deinem Beispiel: Wie gesagt, man braucht es nicht unbedingt, aber so in etwa liefe es:



Code: Alles auswählen

InitSprite()
InitKeyboard()
examinedesktops()
lang=DesktopWidth(0)
hoch=DesktopHeight(0)
OpenScreen(lang,hoch,32,"")
Falsch zugeordnetes Zitat des Tages: "O'zapft is" - Edward Snowden :)
PB42
Beiträge: 243
Registriert: 13.10.2005 03:21

Beitrag von PB42 »

Wenn ich das so mache, wie von Dir vorgeschlagen, also

lang=DesktopWidth(0)
hoch=DesktopHeight(0)
OpenScreen(lang,hoch,32,"")

läuft das Spiel in verkleinerter Form in der linken oberen Ecke. Demnach müßte ich dann alles, was in dem Spiel an konkreten Längen vorkommt, also die Länge von Boxen etc, in relativer Form schreiben? Das wäre aber echt umständlich. Mein Desktop hat 800 X 600 Pixel, also nicht gerade üppig.

PB42
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

wieso is das spiel verkleinert, wenn dein desktop 800x600 hat...

hattest du vorher nen 512x384 screen?


> Demnach müßte ich dann alles, was in dem Spiel an konkreten Längen > vorkommt, also die Länge von Boxen etc, in relativer Form schreiben?

yap genau. deshalb:

> Zuerstmal: Es ist nicht notwendig, das ganze bei OpenScreen zu nutzen.
> Beim Screen kann die Auflösung beliebig geändert werden.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Konne
Beiträge: 764
Registriert: 30.03.2005 02:20
Kontaktdaten:

Beitrag von Konne »

Wenn du net alles Dynamisch machen willst kannst du auch alles auch mit Usebuffer(#Sprite) auf einem anderen Sprite rendern, des kannste dann verzerren also resizen wie du willst und kannst so ganz leicht jede Auflösung erreichen. (Ich hoffe Usebuffer(#sprite) stimmt :))
PB42
Beiträge: 243
Registriert: 13.10.2005 03:21

Beitrag von PB42 »

Auch Danke.
@ Kaeru Gaman: Mein screen war immer Auflösung 800 X 600, nur hatte ich mal testweise das Programm mit ExamineDesktops() gestartet, OHNE vorher die Änderungen vorgenommen zu haben, die dann eigentlich noch dazugehören würden, aber wenn bei Openscreen() so und so kein ExamineDesktop() nötig ist, wenn man das Spiel auch mal auf einem anderen Rechner laufen lassen will, umso besser.

PB42
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

yap wichtig ist nur, dass es wirklich ne standard-auflösung ist.

z.b. schafft mein TFT nur 800x600, 1024x768, und 1280x1024

wenn du also ne auflösung 1280x960 einbauen würdest, die auf anderen monitoren durchaus standard ist, würde es nicht laufen.

..aber mit 800x600 solltest du noch längere zeit auf der sicheren seite sein,
1024x768 ist eigentlich auch maximal verbreitet.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Beitrag von Laurin »

Kaeru Gaman hat geschrieben:z.b. schafft mein TFT nur 800x600, 1024x768, und 1280x1024
800x600 und 1024x768 sind 4:3-Auflösungen, 1280x1024 dagegen ist eine 5:4-Auflösung. Merkwürdiger TFT.
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

klingt komisch, is aber so...

1280x1024 ist seine native auflösung, 800x600 und 1024x768 wird rezised.

frag mich nich warum die jungs von XEROX das so gewählt haben.

aber:
das Ding ist extrem gut, sehr weiten einblickwinkel,
und ne glasplatte vor dem bildschirm,
den kann man mit den klassischen reinigungstüchern säubern,
ohne befürchten zu müssen,
bei zu starkem druck die zellen zu schädigen...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten