Wie funktioniert das Warten auf Tastendruck?
Übersicht

![]() |
SereyanneBetreff: Wie funktioniert das Warten auf Tastendruck? |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich finde man sollte keinen Prozessor braten ![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Delay hält das ganze Programm an, es lässt es "einfrieren". | ||
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Herzlichen Dank für eure Hilfe.
Werde es nachher mal ausprobieren. Danke! |
||
Pitje PuckBetreff: geht doch einfacher |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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? ![]() |
||
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
wurde doch berreits erwähnt | ||
Pitje Puck |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Uups!! Stimmt. Verpeilt. Sorry. ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group