Hab mal wieder Probleme

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

sbrog

Betreff: Hab mal wieder Probleme

BeitragSa, Apr 10, 2004 11:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich will ein Programm schreiben, in dem man mit einem Panzer herumfährt und schießt. Ich hab den Panzer so gecodet :

Code: [AUSKLAPPEN]

Graphics  800,600

Panzerpositionx = 100



Repeat
Cls

Rect panzerposition,550,50,50,2
Rect panzerposition+10,500,5,50
Rect panzerposition+35,500,5,50

If KeyDown(203) 
panzerposition = panzerposition-2
EndIf

If KeyDown(205)
panzerposition= panzerposition+2
EndIf



Flip
Until KeyHit(1)

If KeyHit(156)
Rect panzerposition+10,480,5,20
EndIf



Das funktioniert auch und der Panzer bewegt sich .
Jetzt will ich aber den Panzer auf der Leertaste schießen lassen

wenn ich jetzt aber schreibe

If keyhit
(code fürs schießen)
endif

und die schleife läuft das nächste mal durch, dann wird der schuss wieder beendet.(weil if keyhit nicht mehr erfüllt ist )

Wie kann ich schreiben, dass der schuss weiterhin ausgeführt wird,(also das If Keyhit beim zweiten schleifendurchlauf nicht mehr beachtet wird ?

Hubsi

BeitragSa, Apr 10, 2004 12:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
If KeyHit(schiessen) Then ballern=True

If ballern
  ; Code fürs schiessen
EndIf

Und Setbuffer BackBuffer() nicht vergessen Wink
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

wunderkind

BeitragSa, Apr 10, 2004 12:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Hubsi hat Folgendes geschrieben:
Code: [AUSKLAPPEN]
If KeyHit(schiessen) Then ballern=True

If ballern
  ; Code fürs schiessen
EndIf

Und Setbuffer BackBuffer() nicht vergessen Wink


Unvollständig würde ich behaupten Wink. Denn es muss auf jeden Fall sichergestellt werden, dass ballern nach dem Ende der Schusssequenz wieder false wird!

sbrog

BeitragSa, Apr 10, 2004 12:27
Antworten mit Zitat
Benutzer-Profile anzeigen
damit man nochmal ballern kann ?


hab wieder ein Problem

Code: [AUSKLAPPEN]

Graphics  800,600

Panzerposition = 100
schussposition = 480


Repeat
Cls

Rect panzerposition,550,50,50,2
Rect panzerposition+10,500,5,50
Rect panzerposition+35,500,5,50

If KeyDown(203)
panzerposition = panzerposition-2
EndIf

If KeyDown(205)
panzerposition= panzerposition+2
EndIf

If keyhit(28) then ballern =1


if ballern
rect  panzerposition +10,schussposition,5,schussposition+20
Endif


Flip
Until KeyHit(1)

If KeyHit(156)
Rect panzerposition+10,480,5,20
EndIf

Wenn ich jetzt jedesmal schussposition um 1 verringere, damit sich der schuss nach oben bewegt, wie kann ich einstellen, dass schussposition erst schussposition-1 , wenn ballern = 1 ?[/code]

Hubsi

BeitragSa, Apr 10, 2004 12:48
Antworten mit Zitat
Benutzer-Profile anzeigen
wunderkind hat Folgendes geschrieben:
Unvollständig würde ich behaupten Wink. Denn es muss auf jeden Fall sichergestellt werden, dass ballern nach dem Ende der Schusssequenz wieder false wird!
Eine gewisse Motivation zum selberdenken setze ich natürlich voraus Wink
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

sbrog

BeitragSa, Apr 10, 2004 17:01
Antworten mit Zitat
Benutzer-Profile anzeigen
habs jetzt soweit


Code: [AUSKLAPPEN]

Graphics  800,600

Panzerposition = 100
Schussposition =  480


Repeat
Cls

Rect panzerposition,550,50,50,2
Rect panzerposition+10,500,5,50
Rect panzerposition+35,500,5,50


If KeyDown(203) 
panzerposition = panzerposition-2
EndIf

If KeyDown(205)
panzerposition= panzerposition+2
EndIf

If KeyHit(28)
schiessen= 1
EndIf

If schiessen

Rect Panzerposition+10,schussposition,5,20
schussposition = schussposition-3

EndIf


Flip
Until KeyHit(1)

If KeyHit(156)
Rect panzerposition+10,480,5,20
EndIf



was muss ich schreiben, dass der schuss nicht mit der Panzerposition mitläuft, sondern da bleibt, wo er abgeschossen wurde ?
 

x.Force

BeitragSa, Apr 10, 2004 17:56
Antworten mit Zitat
Benutzer-Profile anzeigen
schau inst CodeArchiv da hat Ralli men mal so was gemacht Smile

AMD Athlon XP 2000+ | 1024mb DDR-Ram | Asus Radeon 9600XT | BENQ FP757 17°Zoll TFT

Was kümmert mich mein Geschwätz von gestern? (Konrad Adenauer) -.-

sbrog

BeitragSa, Apr 10, 2004 20:30
Antworten mit Zitat
Benutzer-Profile anzeigen
dort wird die schussfunktion aber mit sin und cos berechnet, weil in alle richtungen geschossen wird.
 

x.Force

BeitragSa, Apr 10, 2004 20:34
Antworten mit Zitat
Benutzer-Profile anzeigen
und bei dir in nur eine? dann rob der hat in seinem tut so ein spiel in tutsammlung 2

AMD Athlon XP 2000+ | 1024mb DDR-Ram | Asus Radeon 9600XT | BENQ FP757 17°Zoll TFT

Was kümmert mich mein Geschwätz von gestern? (Konrad Adenauer) -.-

sbrog

BeitragSa, Apr 10, 2004 20:59
Antworten mit Zitat
Benutzer-Profile anzeigen
x.Force hat Folgendes geschrieben:
und bei dir in nur eine?


schau dir den code an, dann siehst dus.

sbrog

BeitragSo, Apr 11, 2004 10:08
Antworten mit Zitat
Benutzer-Profile anzeigen
hab den code jetzt so :

Code: [AUSKLAPPEN]

Graphics  800,600


Schussposition =  480


Repeat
Cls


Rect panzerposition,550,50,50,2
Rect panzerposition+10,500,5,50
Rect panzerposition+35,500,5,50


If KeyDown(203) 
   panzerposition = panzerposition-2
EndIf

If KeyDown(205)
   panzerposition= panzerposition+2
EndIf

If KeyHit(57)
   schiessen= True
EndIf

If schiessen
   Rect panzerposition+10,schussposition,5,20
   Rect panzerposition+35,schussposition,5,20
   schussposition = schussposition-3
EndIf

If schussposition<-20
   schiessen=False
   schussposition =480
EndIf

Flip
Until KeyHit(1)



das problem ist, dass der schuss mit dem panzer mitläuft ,und man sollte schießen können, während der andere schuss noch im bild ist.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group