Morphy kriegt seine Score nicht korrekt ausgerechnet

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Morpheus

Betreff: Morphy kriegt seine Score nicht korrekt ausgerechnet

BeitragDo, Jun 08, 2006 21:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, ich habe echt seltsames Noob-Problem :
Code: [AUSKLAPPEN]

Const grphx = 640
Const grphy = 480
Const clrdpt = 16
Const wndstyle = 2
Graphics grphx,grphy,clrdpt,wndstyle
SetBuffer BackBuffer ()
kugel = LoadImage("Kugel.bmp")
balken = LoadImage ("Balken.bmp")

kglx# = grphx/2
kgly# = grphy/2
kgldir# = 1
blknx# = grphx/2
blkny# = 450

score = 0

While Not KeyHit (1)

kgly=kgly+kgldir
If kgly<=0 Then kgldir = kgldir + 1
If kgly>=450 Then kgldir = kgldir -1

If ImagesCollide (kugel,kglx,kgly,0,balken,blknx,blkny,0)
score = score + 100
EndIf
 
If KeyDown (203) Then blknx=blknx-5
If KeyDown (205) Then blknx=blknx+5
If blknx<0 Then blknx = 0
If blknx>550 Then blknx = 550

Cls

Print score



DrawImage kugel,kglx,kgly
DrawImage balken,blknx,blkny
Flip
Wend
EndGraphics


Bei mir wird Score nicht nur um 100 addiert, wenn die Kugel auf den Balken trifft, sondern das Ganze wird mit 4 GHZ so lange wiederholt wie die Kugel auf dem Balken ist. Das werden dann pro Treffer 6000 Punkte^^. Wie bringe ich Blitz dazu, nur einmal pro Treffer + 100 zu machen anstelle von 60 Mal?^^.

MfG, Morpheus

DerHase

BeitragDo, Jun 08, 2006 22:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Du nimmst ne Variable her und setzt sie auf TRUE nachdem Du 100 Punkte addiert hast. Solange diese Variable auf TRUE ist, addierst Du keine weiteren Punkte mehr dazu. Nachdem die Kollision vorbei ist, setzt Du diese Variable wieder auf FALSE und der Spass kann von vorne losgehn Smile
 

Morpheus

BeitragFr, Jun 09, 2006 12:59
Antworten mit Zitat
Benutzer-Profile anzeigen
DerHase hat Folgendes geschrieben:
Du nimmst ne Variable her und setzt sie auf TRUE nachdem Du 100 Punkte addiert hast. Solange diese Variable auf TRUE ist, addierst Du keine weiteren Punkte mehr dazu. Nachdem die Kollision vorbei ist, setzt Du diese Variable wieder auf FALSE und der Spass kann von vorne losgehn Smile


Und wie genau mach ich das Smile? Wie ich eine Variable auf True setzte weiß ich, aber wie ich dann das Addieren stoppe, das weiß ich nicht. Und ob man weiß so schreibt, weiß ich auch nicht^^.

MfG, Morpheus
 

JanK

BeitragFr, Jun 09, 2006 14:31
Antworten mit Zitat
Benutzer-Profile anzeigen
If hoffe das hilft dir:

Code: [AUSKLAPPEN]

;->Kollision
If Imagescollide(....)  then

If Var = False then
Punkte = Punkte + 100
End if
Var = True ;->Auf wahr stellen, damit nicht mehr punkte hinzugefügt werden
else
Var = True
End if
Ich habe keine Zeit, mich zu beeilen.
The Pollux Conflict || The Pollux Renegades || Lipstick-live.de

Rone

BeitragFr, Jun 09, 2006 14:31
Antworten mit Zitat
Benutzer-Profile anzeigen
So zum Beispiel:

Code: [AUSKLAPPEN]

Const grphx = 640
Const grphy = 480
Const clrdpt = 16
Const wndstyle = 2
Graphics grphx,grphy,clrdpt,wndstyle
SetBuffer BackBuffer ()
kugel = LoadImage("Kugel.bmp")
balken = LoadImage ("Balken.bmp")

kglx# = grphx/2
kgly# = grphy/2
kgldir# = 1
blknx# = grphx/2
blkny# = 450

score = 0

Local Kolli=False

While Not KeyHit (1)

kgly=kgly+kgldir
If kgly<=0 Then kgldir = kgldir + 1
If kgly>=450 Then kgldir = kgldir -1

If ImagesCollide (kugel,kglx,kgly,0,balken,blknx,blkny,0) And Kolli=False
score = score + 100
Kolli=True
ElseIf ImagesCollide (kugel,kglx,kgly,0,balken,blknx,blkny,0)=0 And Kolli=True
   Kolli = False
End If 

If KeyDown (203) Then blknx=blknx-5
If KeyDown (205) Then blknx=blknx+5
If blknx<0 Then blknx = 0
If blknx>550 Then blknx = 550

Cls

Print score

DrawImage kugel,kglx,kgly
DrawImage balken,blknx,blkny
Flip
Wend
EndGraphics


...Genau wie DerHase so sagte! Wink

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group