Anfängerfehler

Anfängerfragen zum Programmieren mit PureBasic.
Gamer
Beiträge: 180
Registriert: 21.03.2005 16:59

Anfängerfehler

Beitrag von Gamer »

Wo ist der Fehler? Die Alertbox erscheint schon nach dem 1. Schuss :-(

Code: Alles auswählen

InitMouse():InitSound()

Global magazin.b
magazin.b = 5

Repeat

  ExamineMouse()
  If MouseButton(1)
  PlaySound(0)
  magazin - 1
  
  If magazin=0:MessageRequester("Fehler","Munition",0):EndIf
  
  EndIf

Until KeyboardPushed(#PB_Key_Escape)

End
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

MouseButton() ist so lange TRUE bis du ihn wieder loslässt, d.h. du musst eine Variable einführen die beinhaltet, ob die Maus wieder losgelassen wurde! Erst dann darfst du wieder auf MouseButton() prüfen!
Gamer
Beiträge: 180
Registriert: 21.03.2005 16:59

Beitrag von Gamer »

Kompliziert!

Also die Schleife wird durch einen einzigen kurzen Klick schon 5x
durchlaufen und deswegen kommt die Alertbox gleich?

Das mit der zusätzliche Variable verstehe ich was Du meinst,
aber kann es irgendwie nicht umsetzen :)
netfreak
Beiträge: 91
Registriert: 23.10.2004 18:30
Kontaktdaten:

Beitrag von netfreak »

schau mal :

Code: Alles auswählen

InitMouse()
InitSound()

Global magazin.b
magazin.b = 5

Repeat

  ExamineMouse()
  If MouseButton(1) And Maus_Knopf = 0
  Maus_Knopf = 1 
  PlaySound(0)
  magazin - 1
 
  If magazin=0:MessageRequester("Fehler","Munition",0):EndIf
 
  EndIf
  
   If MouseButton(1) = 0
  Maus_Knopf = 0       
 EndIf
  

Until KeyboardPushed(#PB_Key_Escape)
mfg
netfreak
Gamer
Beiträge: 180
Registriert: 21.03.2005 16:59

Beitrag von Gamer »

Thanks! Und hier ist dann wohl das gleiche "Problem" oder? Sprich wenn ich im Intro schon Escape drücke, wird das Spiel auch gleich beendet.

Code: Alles auswählen

; intro

Repeat
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)

; game

Repeat
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)

End
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Dafür gibt es den Befehl KeyboardReleased()
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Gamer
Beiträge: 180
Registriert: 21.03.2005 16:59

Beitrag von Gamer »

Eigentlich komisch das es nicht sowas wie "FlushKeys" oder "FlushMouse" in PB gibt...
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Beitrag von Laurin »

Die Befehle funktionieren anders als zB die in QBasic.

Was willst du mit FlushKeys oder Flushmouse, wenn man keinen Speicher hat, den man flushen kann?
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
Antworten