Seite 1 von 2

Hilfe bei WindowedScreen Spiel

Verfasst: 27.05.2009 21:39
von zoidberg
Hallo Leute!

Ich hab lange nichts mehr programmiert, da ich immer etwas sprunghaft mit meinen Interessen bin. Nun wollte ich aber dann doch mal weitermachen.

Ich hab mir gedacht das Fullscreen nicht mehr so angesagt ist, da viele Instant Messenger usw. nebenher nutzen. Also wollte ich auf Fenster umstellen.

Ich hab dabei folgende Probleme:

-Ich kann nicht mit Alt Tab aus dem Fenster raus.
-CPU Auslastung ist zu hoch.
-Geschwindigkeit egal welches Delay zu schnell.

Da ich Linux nutze wären mir Tips ohne API angenehmer.

Danke für sachdienliche Hinweise :)

Hier der Code und die Grafiken als Zip Päckchen (160KB) zum selberkompilieren. PB Version ist 4.30

www.stfm.de/purebasic/burgangriffPB4.zip

Ich stelle grad beim Testen unter Vista fest, daß es nur im Kompatibilitätsmodus läuft. Grrrr, Probleme über Probleme.

Gruß, Steffen

Verfasst: 27.05.2009 22:02
von jojo1541
Hallo, Zoidberg.

1: Kann ich nicht bestätigen, ich kann mit Alt-Tab zischen dem Spiel-Fenster und anderen Programmen wechseln.

2: Schau ich mir grad nochma an

3: Befehl SetFrameRate(#Framerate) verwenden. :wink:

Verfasst: 27.05.2009 22:14
von KeyKon
volti hat geschrieben:Hallo, Zoidberg.

1: Kann ich nicht bestätigen, ich kann mit Alt-Tab zischen dem Spiel-Fenster und anderen Programmen wechseln.

2: Schau ich mir grad nochma an

3: Befehl SetFrameRate(#Framerate) verwenden. :wink:
Hast dus auch unter Linux getestet^^?

Bzw zoidberg: Hast du es unter Windows getestet...

Wenns ein reines Linux-Problem is sollte das meiner Meinung nach in das Linux-Unterforum...

Verfasst: 27.05.2009 22:15
von jojo1541
Nein, hab im Moment nur Windows, da ich zu faul bin, meine Ubuntu Cd zu suchen.^^

Verfasst: 27.05.2009 22:42
von X360 Andy
SetFrameRate() geht doch nur im Screen ?
Zumindest meine ich das mal gelesen zu haben.

Verfasst: 27.05.2009 22:54
von Kaeru Gaman
nein, SetFrameRate geht auch im WindowedScreen...
mit DX9 geht es garnicht, vielleicht meintest du das...
aber trotzdem ist es nur eine Krücke, Timing sollte man immer über einen Timer machen.

@Zoidberg
mit dem Alt-Tab hatte ich auch Schwierigkeiten bei der Mouse-Lib im WindowedScreen...

hast du denn keine Möglichkeit, über Linux-API zu gehen für die Maustasten?

hier das Windows-Beispiel, das mit Alt-Tab funktioniert:
http://www.purebasic.fr/german/viewtopic.php?t=11280

dieses Linux-Beispiel kannst du ja mal antesten, was wie funktioniert:
http://www.purebasic.fr/german/viewtopi ... 772#130772


das Problem ist halt, dass bei Alt-Tab das ReleaseMouse(#True)
nicht mehr ausgeführt werden kann, weil der Task ja nicht mehr läuft.

als Lösung könnte man vielleicht über einen Callback gehen,
der auf das Alt-Tab reagiert, keine Ahnung ob sowas geht...

aber ich finde es einfacher, gleich auf die MouseLib zu verzichten.

Verfasst: 27.05.2009 23:04
von zoidberg
Hi Leute!

Also ich hab die Probleme mit dem Alt Tab nur unter Linux.
Unter Windows geht es tatsächlich, aber es läuft nur im Kompatibilitätsmodus.
Die Tasten nimmt er an auch wenn ich den Focus nicht auf dem Spiel habe. Komisch. Es sollte vielleicht dann besser anhalten. Muss ich mich einlesen.
Die Windowed Screen Beispiele von PB enden bei mir in Linux immer "unerwartet" denke das liegt an der 64Bit Version.

Die Maus kann ich ganz rausnehmen, da es Tastatursteuerung ist, oder sollte ich es drinlassen wegen dem Exit Knopf?

EDIT: Hab ja gar keinen Exit Knopf :-) Habs rausgenommen.
Ich glaub unter Windows läuft es in "original" Geschwindigkeit wie auf meinem alten Laptop wo es entstanden ist. Aber unter Linux rennt es wie irre.

Wenn ich das Fluid Byte Memory sehe, dann erkenne ich wie mager meine Kenntnisse sind :-)

Ich werd mir mal Kaerus Beispiele ansehen.

Danke!

Gruß, Steffen

Verfasst: 27.05.2009 23:57
von Kaeru Gaman
> Die Maus kann ich ganz rausnehmen, da es Tastatursteuerung ist, oder sollte ich es drinlassen wegen dem Exit Knopf?

wenn du einen Exit-Knopf am Fensterrahmen hast, brauchst du trotzdem die Mauslib nicht, weil die nur im Screenbereich funktioniert.

> Die Windowed Screen Beispiele von PB enden bei mir in Linux immer "unerwartet" denke das liegt an der 64Bit Version.

oy, noch ein Haken mehr...


die beiden Beispiele oben sind nur in Bezug aufs Mousehandling interessant.
wenn du keine Maus benutzt, gibt es andere Hürden.

ich würde mich mal um nen Timer kümmern, ein ganz simples Mistbeispiel findest du hier:
http://www.purebasic.fr/german/viewtopic.php?t=17400

das problem ist halt, dass in den meisten Beispielen für Timer zur Win-API gegriffen wird.
bei dem Billig-Beispiel nicht, aber mehr als ein ungefährer Leitfaden sollte es dir nicht sein.

Verfasst: 26.06.2009 20:39
von zoidberg
Also jetzt werd ich bald verrückt. Nun geht es scheinbar gar nicht mehr. Es kommt "Keine Rückmeldung" unter Windows und unter Linux kommt ein leeres Fenster. Mit dem unveränderten Code.
Ich hatte einiges verändert und dann lief es nicht mehr, jetzt geht selbst der alte Code nicht. Könnt ihr das bestätigen?

Verfasst: 26.06.2009 20:43
von Kaeru Gaman
"Keine Rückmeldung" bedeutet, dass du kein (Wait)WindowEvent drin hast.