Hilfe bei WindowedScreen Spiel

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
zoidberg
Beiträge: 219
Registriert: 06.12.2004 23:15
Computerausstattung: Acer 6530
Mit Ubuntu 9.04 64 Bit als Hauptsystem und
Windows Vista 32Bit Home Premium zum spielen.
Wohnort: GM
Kontaktdaten:

Hilfe bei WindowedScreen Spiel

Beitrag 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
Bild
Benutzeravatar
jojo1541
Beiträge: 431
Registriert: 15.09.2007 17:12
Wohnort: Irgendwo im Nirgendwo

Beitrag 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:
Ich verkaufe Rechtschreibfehler und jede menge GROßBUCHSTABEN. Alles unbegrenzt zu haben.
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Beitrag 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...
(\/) (°,,,°) (\/)
Benutzeravatar
jojo1541
Beiträge: 431
Registriert: 15.09.2007 17:12
Wohnort: Irgendwo im Nirgendwo

Beitrag von jojo1541 »

Nein, hab im Moment nur Windows, da ich zu faul bin, meine Ubuntu Cd zu suchen.^^
Ich verkaufe Rechtschreibfehler und jede menge GROßBUCHSTABEN. Alles unbegrenzt zu haben.
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Beitrag von X360 Andy »

SetFrameRate() geht doch nur im Screen ?
Zumindest meine ich das mal gelesen zu haben.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
zoidberg
Beiträge: 219
Registriert: 06.12.2004 23:15
Computerausstattung: Acer 6530
Mit Ubuntu 9.04 64 Bit als Hauptsystem und
Windows Vista 32Bit Home Premium zum spielen.
Wohnort: GM
Kontaktdaten:

Beitrag 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
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
zoidberg
Beiträge: 219
Registriert: 06.12.2004 23:15
Computerausstattung: Acer 6530
Mit Ubuntu 9.04 64 Bit als Hauptsystem und
Windows Vista 32Bit Home Premium zum spielen.
Wohnort: GM
Kontaktdaten:

Beitrag 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?
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

"Keine Rückmeldung" bedeutet, dass du kein (Wait)WindowEvent drin hast.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten