Wie funktioniert das Warten auf Tastendruck?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Sereyanne

Betreff: Wie funktioniert das Warten auf Tastendruck?

BeitragMi, Feb 27, 2008 16:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
habe grade mit BlitzBasic begonnen und habe eine sehr doofe Frage. Ich kriege es einfach nicht hin, dass der Titelbildschirm meines Spiels so lange angezeigt wird, bis Enter gedrückt wird! Wie mach ich das?
Mit Input funktioniert es... Allerdings kann der Spieler dann den Screen vollschreiben, bis er endlich mal Enter drückt. Ziemlicher Käse.
Würde mich sehr über Hilfe freuen!
 

AMD

BeitragMi, Feb 27, 2008 16:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
if keyhit(28) then ...
?

heißt so viel wie
wenn Tastencode 28 (Enter) gedrückt wird dann muss das und das passieren
Das Leben ist ein scheiß Spiel hat aber eine saugute Grafik!
PC:
AMD 5200 X2(2x2,6Ghz), 250GB Festplatte, 2048MB Arbeitsspeicher, Nvidia 9800 GTX mit 512MB.....
Bildschrim mit 22 Zoll und 5msk Übertragungszeit......
Mein BaumMap Tutorial:
http://www.blitzforum.de/forum...hp?t=26341

The_Nici

BeitragMi, Feb 27, 2008 17:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

Graphics 800,600,32,1
Setbuffer Backbuffer()
Titelbild=Loadimage("title.png")
While not KeyHit(28)
   Drawimage Titelbild,0,0
   Flip
   Cls
Wend

Game()

Who

BeitragMi, Feb 27, 2008 20:19
Antworten mit Zitat
Benutzer-Profile anzeigen
@ The_Nici: Das würde 100% Auslastung hervorrufen => unnötig.
Code: [AUSKLAPPEN]
Graphics 800,600,32,1
Setbuffer Backbuffer()
Zeit = CreateTimer(60)
Titelbild=LoadImage("Titel.png")

DrawImage Titelbild,0,0
Flip 0
Repeat
    WaitTimer Zeit  ;Delay 20 <-- DELAY IST BÖSE! VERWENDET NIE DELAY!
Until KeyHit(28)
;Hier folgt die Hauptschleife

Wenn es nicht unbedingt Enter sein muss, dann reicht ein einfaches
Code: [AUSKLAPPEN]
WaitKey()
statt der Repeat-Until-Schleife

MFG

Ich entschuldige mich bei allen, die ich damit erzürnt habe. Die Diskussion ließ sich wieder einmal nicht vermeiden.
  • Zuletzt bearbeitet von Who am Mi, Feb 27, 2008 23:22, insgesamt 2-mal bearbeitet

The_Nici

BeitragMi, Feb 27, 2008 20:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Who, schreib ihm doch noch ein ganzez MMORPG, das mit der CPU-Auslastung kann er ja noch später nachsehen.

Man sollte keine Wurst braten wenn man kein Feuer anmachen kann. ^^

Who

BeitragMi, Feb 27, 2008 20:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich finde man sollte keinen Prozessor braten Laughing
Je früher man diese (wirklich grundlegenden) Schritte lernt, desto besser.

Noch dazu gab es schon genügend Diskussionen wegen der Prozessorauslastung. Das Thema sollte geklärt sein.

EDIT siehe oben
  • Zuletzt bearbeitet von Who am Mi, Feb 27, 2008 23:02, insgesamt einmal bearbeitet

skey-z

BeitragMi, Feb 27, 2008 22:17
Antworten mit Zitat
Benutzer-Profile anzeigen
und dann schau bitte mal nach, warum delay verpöhnt ist und anstelle waittimer benutzt wird
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

BladeRunner

Moderator

BeitragMi, Feb 27, 2008 22:24
Antworten mit Zitat
Benutzer-Profile anzeigen
https://www.blitzforum.de/foru...hp?t=25242
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

FireballFlame

BeitragDo, Feb 28, 2008 0:04
Antworten mit Zitat
Benutzer-Profile anzeigen
skey-z hat Folgendes geschrieben:
und dann schau bitte mal nach, warum delay verpöhnt ist und anstelle waittimer benutzt wird

Was soll an WaitTimer besser sein als an Delay ? Verpöhnt??
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit

The_Nici

BeitragDo, Feb 28, 2008 9:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Delay hält das ganze Programm an, es lässt es "einfrieren".

FireballFlame

BeitragDo, Feb 28, 2008 11:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Ach, und WaitTimer nicht?
Das ist doch der Sinn von einem Wartebefehl.
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit

BladeRunner

Moderator

BeitragDo, Feb 28, 2008 14:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Liess dir das FAQ in meinem link bitte mal durch, FBF.
Delay bremst immer - auch wenn das Programm zB auf einem alten Rechner eh schon ins Schwimmen gerät.
Waittimer jedoch ist flexibel. Das ist der Hauptgrund warum man Timer statt delay nehmen sollte.
Denn ein Delay muss im Prinzip immer an den ausführenden Rechner angepasst werden, was ein Waittimer ganz automatisch erledigt.
Aber wir schweifen hier gewaltig von der Ursprungsfrage ab.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

FireballFlame

BeitragDo, Feb 28, 2008 19:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Also meine einzigen Erfahrungen mit WaitTimer bestanden darin, dass es mein Programm, falls es mal unter den getimerten FPS-Wert kam, nur noch langsamer machte. Außerdem lief dann das gesamte Spiel langsamer, Gegner bewegten sich net mehr richtig etc. ...
Deshalb bin ich schnell dazu übergegangen, das WaitTimer wegzulassen und stattdessen nach jedem Frame die vergangene Zeit zu messen. Dann kann ich, wenn alles schnell läuft, die überflüssige Zeit mit Delay auffüllen und wenn es langsam läuft, meine Objekte entsprechend schneller bewegen.
Irgendwie versteh ich das Problem nicht, hab ich das Gefühl Confused

Und sorry für den OT, aber die eigentliche Frage ist imo sowieso schon gelöst.
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit

Sereyanne

BeitragFr, Feb 29, 2008 8:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Herzlichen Dank für eure Hilfe.
Werde es nachher mal ausprobieren.
Danke!
 

Pitje Puck

Betreff: geht doch einfacher

BeitragMo, März 03, 2008 18:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielleicht ist der Befehl ja auch verpöhnt, aber wie wäre es mit einem einfachen "waitkey()", wenn es nicht unbedingt die Entertaste sein muss. Wenn sowiso nur ein Bild angezeigt werden soll und keine Animation zusätzlich laufen soll ist das doch viel einfacher. Und die Prozessorlast ist auch gleich null. Um es auch mal mit einem Sprichwort auszudrücken (wenn auch ohne Bratwürste)

warum mit Kanonen auf Spatzen schiessen?

Wink

Smily

BeitragMo, März 03, 2008 18:54
Antworten mit Zitat
Benutzer-Profile anzeigen
wurde doch berreits erwähnt
 

Pitje Puck

BeitragDi, März 04, 2008 0:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Uups!! Stimmt. Verpeilt. Sorry. Rolling Eyes

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group