taste loslassen bevor neuer schuss

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

mas93

Betreff: taste loslassen bevor neuer schuss

BeitragFr, Nov 02, 2007 12:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Leute, ich stehe hier vor einem simplen Problem.

Ich habe folgenden code:

Code: [AUSKLAPPEN]
If MyJoyFire(1,1)=1 And r_munnition1>0 Then
            rak=1
      ;Der Linke schuss
            r.rakete=New rakete
            r\entity=LoadMesh("meshs/rakete.b3d",kopf)
            r\art=waffenart3
            r\nummer=1
            RotateMesh r\entity,0,0,0
            r_munnition1=r_munnition1-1
            ra1ex=1
            ;Auswahl=3
         EndIf   


wenn ich jetzt die Joysticktaste drücke, dann werden aber gleich 5 raketen abgefeuert, weil ich ja länger als 1 millisecunde den firerbutton drücke.

Wie kann ich jetzt festlegen, dass ich erst wieder feuern kann, wenn der firebutton losgelassen wurde?


Wäre nett wenn ihr mir helfen könntet.

mfg
mas93
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

theotheoderich

BeitragFr, Nov 02, 2007 12:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Schau Dir mal den Befehl FlushJoy an.
http://www.blitzbase.de/befehle2d/flushjoy.htm

Ich sitze gerade nicht vor dem Spielerechner, aber das müsste der richtige Befehl sein.

Vergib eine Variable für den Joystickbutton, JoyFire=0, wird nun der Knopf gedrückt dann JoyFire=1.

Bei JoyFire=1 fliegt eine Rakete los, direkt danach JoyFire=0.

Beim nächsten Schleifendurchlauf ist JoyFire nicht mehr 1 und es fliegen keine Raketen mehr.
In jede Schleife noch FlushJoy und es müsste eigentlich funktionieren.
Gruß
TheoTheoderich
--
The box label said, "Requires Windows XP or better.", so I bought an Amiga Computer.

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragFr, Nov 02, 2007 12:37
Antworten mit Zitat
Benutzer-Profile anzeigen
ich würde es mit joyhit(1) machen, alternativ geht es auch mit joydown und einem Timer
[BB2D | BB3D | BB+]

kriD

Betreff: joyup

BeitragFr, Nov 02, 2007 13:18
Antworten mit Zitat
Benutzer-Profile anzeigen
du wolltest doch, das man feuert, wenn die taste losgelassen wird, oder?
denn würd ich mir ne funktion schreiben.. joyup ()



Code: [AUSKLAPPEN]
;Global joydown_status

Function joyup (joypad_taste)
   
   Local joyup_rueckgabewert=0
   
   If joydown_status=0
      If JoyDown (joypad_taste)=1 Then
         joydown_status=1
      EndIf
   EndIf
   
   If joydown_status=1
      If JoyDown (joypad_taste)=0 Then
         joydown_status=0
         joyup_rueckgabewert=1
      EndIf
   EndIf
   
   Return joyup_rueckgabewert
   
End Function


und denn ersetzt du zB:joydown (5) durch joyup (5)
joydown_status musst du dafür als globale variable definieren.

versuchs mal..

MfG kriD
Wenn ich du wäre, wäre ich lieber ich!

DerHase

BeitragFr, Nov 02, 2007 14:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit JoyDown würde ich es wie folgt machen:

Code: [AUSKLAPPEN]
Graphics 320,240,0,2
SetBuffer (BackBuffer())

Global shot = 1

While Not KeyHit(1)

   
   If JoyDown (1)
      If shot
         Text 10,10,"PENG",0,0
      End If
      shot = 0
   Else
      shot = 1
   End If

      
   Flip:Cls

Wend
Play Satyr!
 

BlackTermi

Betreff: Re: joyup

BeitragFr, Nov 02, 2007 16:40
Antworten mit Zitat
Benutzer-Profile anzeigen
kriD hat Folgendes geschrieben:
du wolltest doch, das man feuert, wenn die taste losgelassen wird, oder?


Nein, er schrieb:
Zitat:

Wie kann ich jetzt festlegen, dass ich erst wieder feuern kann, wenn der firebutton losgelassen wurde?




Also fragt er damit, wie er dafür sorgen kann, daas er, wenn er die Taste gedrückt hält, trotzdem nur eine Rakete abfeuert.

kriD

Betreff: ..

BeitragFr, Nov 02, 2007 17:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Okeee.. Embarassed ^^

MfG kriD
Wenn ich du wäre, wäre ich lieber ich!

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group