Probleme mit Keydown/Keyhit und Menü
Übersicht

sprimeBetreff: Probleme mit Keydown/Keyhit und Menü |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo Leute...
Ich habe ein kleines Problem.. Ich wollte gerade für mein Spiel, an dem ich gerade arbeite, ein Menü erstellen indem man mit den pfeiltasten (oben und unten) halt die einzelnen menüpunkte (start, credits, einstellungen usw) anwählen kann doch irgentwie funktioniert mein keyhit/keydown nicht, ich versteh nicht wieso.. ich hab das folgendermaßen gemacht : Code: [AUSKLAPPEN] start()
Function start() Graphics 1212,480,0,2 intro = LoadImage("D:\hod\menü.png") banane = LoadImage ("D:\hod\banane.png") banane_y=160 Repeat DrawImage intro,x,y DrawImage banane,720,banane_y DrawImage banane,300,banane_y Until KeyDown(1) If KeyHit(208) Then banane_y= banane_y-100 EndIf End Function WaitMouse wenn ich das starte stüzt mein ganzer pc ab.. Ich habe um die keyhit/keydown funktion zu testen nochmal ein miniprogramm gemacht: Code: [AUSKLAPPEN] Graphics 1280,600,0,2 If KeyHit(208) Then Print "Hallo" EndIf WaitMouse aber das funktioniert auch nicht... Ich versteh nicht wieso.. Bitte helft mir ![]() |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hast du überhaupt schon mal ein paar Tutorials gemacht?
Da sollte Doublebuffering und Schleifen drin vorkommen... |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Abfrage ob KeyHit oder KeyDown muss in die Hauptschleife. Beim unteren Code ist es so, dass für einen Bruchteil einer Sekunde geprüft wird, ob die Taste gedrückt wird, dieser ist schnell vorbei und es wird nur noch auf die Maus gewartet. Ich empfehle dir mal ein Tutorial zu lesen (Rob's BB Kurs zum Beispiel). | ||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
sprime |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ah ok danke.. nene, ich kenn die tutorials schon, außer types hab ich ja auch schon die grundbasics drauf von bb eigentlich.. hab ich wohl ne kleinigkeit übersehn xD | ||
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Na ja, sieht nicht so aus...
Du verwendest zum Beispiel kein Doublebuffering (BackBuffer ![]() ![]() |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
Chester |
![]() Antworten mit Zitat ![]() |
---|---|---|
Au weia, dir fehlen noch ein paar Grundlagen wie man sieht.
Machen wir mal eins nach dem andern: - Warum machst du den eigentlichen Quellcode selbst in eine eigene Funktion? Recht überflüssig. - Man benutzt keine Pfadangaben wie ("D:\..."), weil es sonst auf anderen PCs nicht mehr funktioniert - Bei Graphics benutzt man i.d.R. nur die üblichen Monitorauflösungen, im Vollbild würde es bei dir nicht funktionieren - Du benutzt kein Doublebuffering* - Du fragst erst die Taste ab, nachdem die Grafikloop abgeschlossen ist. - Du benutzt Print im Grafikmodus *Beim Doublebuffering gehst du so vor: Vor der Mainloop wechselt du mit Code: [AUSKLAPPEN] Setbuffer Backbuffer() in den Backbuffer.
Alles was du jetzt zeichnest wird in den sogenannten Backbuffer gezeichnet, also nicht auf den Bildschirm, welcher dem sogenannten Frontbuffer entspricht. Bevor du aber mit dem Zeichnen anfängst, löscht man mit Code: [AUSKLAPPEN] Cls den Backbuffer, damit sich die Bilder nicht überlagern. Wenn du dann mit allen Dingen fertig bist, bringst du mit dem Befehl Code: [AUSKLAPPEN] Flip den Inhalt des Backbuffers in den Frontbuffer. Dadurch wird alles auf einen Schlag gezeichnet und gewährleistet somit einen reibunslosen Bildaufbau ![]() Edit: Fail, alle Antworten während dem Schreiben versäumt... |
||
- Zuletzt bearbeitet von Chester am Mi, Sep 30, 2009 20:26, insgesamt einmal bearbeitet
sprime |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ja ich weiß was double buffering etc is ich hab ja auch schon ein kleines spiel gemacht aber ich habs da ja auch schon eingebaut funkzt trotzdem noch nich.. die auflösung is komisch ich weiß aber da ich es ja generell im fenstermodus lasse find ichs nich so schlimm und die pfadangaben änder ich noch wenn ich dann die exe datei speicher.. also habs jetz so:
Code: [AUSKLAPPEN] Graphics 1212,480,0,2 SetBuffer BackBuffer() intro = LoadImage("D:\hod\menü.png") banane = LoadImage ("D:\hod\banane.png") banane_y=160 Repeat DrawImage intro,x,y DrawImage banane,720,banane_y DrawImage banane,300,banane_y Flip If KeyHit(208) Then banane_y= banane_y-100 EndIf Until KeyDown(1) WaitMouse was is jetz noch falsch ?? wen ichs starte stürzt mein pc ab xD |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bluescreen? Fehlermeldung? OS? | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
sprime |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
nein, wenn ich starte, dann spinnt aufeinmal alles, meine maus bleibt stehen kurz dann aufeinmal keine rückmeldung und ich kanns nichmehr schließen und auch nich minimieren oda so | ||
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Der ganze PC stürzt ab? Ziemlich empfindlich dein PC, den kannste gleich aus dem Fenster schmeißen ![]() Versuchs mal so: Code: [AUSKLAPPEN] Graphics 1212,480,0,2 SetBuffer BackBuffer() intro = LoadImage("D:\hod\menü.png") banane = LoadImage ("D:\hod\banane.png") banane_y=160 Repeat If KeyHit(208) Then banane_y= banane_y-100 EndIf DrawImage intro,x,y DrawImage banane,720,banane_y DrawImage banane,300,banane_y Flip Cls Until KeyDown(1) WaitMouse Und als nützliche Ergänzung: https://www.blitzforum.de/foru...hp?t=25242 Edit: Für so etwas gibt es den praktischen Taskmanager. Das würde ich jetzt nicht als Absturz des OS sondern eher als Absturz des Programmes bezeichnen ![]() |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
sprime |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ahh super, danke, das klappt.. ahja und mein pc is garnicht so schlecht xDD keine ahnung warum der so komisch reagiert.. und ich danke euch vielmals für eure hilfe, auch wenn ich grad schockiert bin wieviele unbewusste,eigenltich total simple fehler ich mache xDD | ||
sprime |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ahh super, danke, das klappt.. ahja und mein pc is garnicht so schlecht xDD keine ahnung warum der so komisch reagiert.. und ich danke euch vielmals für eure hilfe, auch wenn ich grad schockiert bin wieviele unbewusste,eigenltich total simple fehler ich mache xDD | ||
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mehr Tutorials gründlich lesen und verstehen ![]() |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
orpheus_2003 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nicht traurig sein.
Ich habs auch schon geschafft mit einem falschem Befehl das Programm in die ewigen Jagdgründe zu schießen... Aber echt. Lies mal ein bisschen. Dann klärt sich das meiste. Gruß M |
||
GazerStar - the beginning
http://gazerstar.lexigame.de/ Wizard (Worktitel) http://wizard.lexigame.de |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
~VERSCHOBEN~ Dieser Thread passte nicht in das Forum, in dem er ursprünglich gepostet wurde. |
||
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 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group