Geschwindigkeitskontrolle

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Raiden93

Betreff: Geschwindigkeitskontrolle

BeitragSa, Jun 04, 2011 11:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey,
ich habe ein Tileset (9x5 Groß) jedes tile soll prüfen ob unter sich noch platz ist wenn ja soll es um eins absteigen. Das Funktioniert auch so einwandfrei doch ich möchte gerne das jedes Tile nur jede Sekunde um 1 fällt.
Ich habe schon einige Tests gemacht aber komme nicht wirklich weiter.
Könnte mir jemand auf die Sprünge Helfen?

Code: [AUSKLAPPEN]


; Kugeln Gravitation
Function Kugeln_Gravitation ()
   For y=0 To 8
      For x=0 To 4
         If y < 8
            ;Blaue Kugel
            If Map(x,y) = 1
               If Map(x,y+1) = 0
                  Map(x,y) = 0
                  Map(x,y+1) = 1
               End If
            End If
            
            ;Rote Kugel
            If Map(x,y) = 2
               If Map(x,y+1) = 0
                  Map(x,y) = 0
                  Map(x,y+1) = 2
               End If
            End If
            
            ;Grüne Kugel
            If Map(x,y) = 3
               If Map(x,y+1) = 0
                  Map(x,y) = 0
                  Map(x,y+1) = 3
               End If
            End If
            
            ;Gelfe Kugel
            If Map(x,y) = 4
               If Map(x,y+1) = 0
                  Map(x,y) = 0
                  Map(x,y+1) = 4
               End If
            End If
         End If
      Next
   Next
End Function

 

Hangman

Betreff: Re: Geschwindigkeitskontrolle

BeitragSa, Jun 04, 2011 11:38
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]
; Kugeln Gravitation
Function Kugeln_Gravitation ()
If MilliSecs() > zeit Then
zeit = MilliSecs() + 1000
For y=0 To 8
For x=0 To 4
If y < 8
;Blaue Kugel
If Map(x,y) = 1
If Map(x,y+1) = 0
Map(x,y) = 0
Map(x,y+1) = 1
End If
End If

;Rote Kugel
If Map(x,y) = 2
If Map(x,y+1) = 0
Map(x,y) = 0
Map(x,y+1) = 2
End If
End If

;Grüne Kugel
If Map(x,y) = 3
If Map(x,y+1) = 0
Map(x,y) = 0
Map(x,y+1) = 3
End If
End If

;Gelfe Kugel
If Map(x,y) = 4
If Map(x,y+1) = 0
Map(x,y) = 0
Map(x,y+1) = 4
End If
End If
End If
Next
Next
End If
End Function


PS: variable zeit muss natürlich global deklariert sein
Ich habe Berthold gebrochen.
  • Zuletzt bearbeitet von Hangman am Sa, Jun 04, 2011 11:41, insgesamt einmal bearbeitet

Raiden93

BeitragSa, Jun 04, 2011 11:40
Antworten mit Zitat
Benutzer-Profile anzeigen
so habe ich mir das eigentlich auch gedacht aber leider ist das so nicht der fall^^ die Tiles warten 1 Sekunde und fallen dan 3-4 schritte runter.
Warten dann weider und fallen wieder viele schritte runter
 

Hangman

BeitragSa, Jun 04, 2011 11:42
Antworten mit Zitat
Benutzer-Profile anzeigen
achso deine routine habe ich mir jetzt nicht angeguckt weil du sagtest es funktioniert das um 1 runter fallen, es würde nur zu schnell gehen

edit: Das kommt daher, dass nach dem Runter-Setzen die Schleife das Tile natürlich nochmal erfasst.

BlitzBasic: [AUSKLAPPEN]
; Kugeln Gravitation
Function Kugeln_Gravitation ()
If MilliSecs() > zeit Then
zeit = MilliSecs() + 1000
For x=0 To 4
For y=0 To 7
;Alle Kugeln
If Map(x,y) <> 0 And Map(x,y+1) = 0
Map(x,y+1) = Map(x,y)
Map(x,y) = 0
y = y + 1
End If
Next
Next
End If
End Function
Ich habe Berthold gebrochen.
  • Zuletzt bearbeitet von Hangman am Sa, Jun 04, 2011 12:41, insgesamt einmal bearbeitet

The Shark

BeitragSa, Jun 04, 2011 12:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Eine sehr einfache Lösung wäre, die Tiles von unten nach oben durchzugehen statt andersrum.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group