Einzelne Bilder flackern... (gelöst)

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

g4ndhi

Betreff: Einzelne Bilder flackern... (gelöst)

BeitragDi, März 03, 2015 1:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Mein Spiel ist eigentlich komplett fertig und funktioniert auch so wie es soll. Bis auf ein kleinen Schönheitsfehler..

Es fliegen von links nach rechts maximal 6 Luftballon. Und sobald die ersten Luftballons den linken Bildschirmrand
passieren fangen alle an sporadisch immer mal wieder zu "Flackern" aber nur die Ballons alles andere im spiel wird normal gezeichnet.... Immer dann wenn es kurz flackert sieht man auch einen Ballon links oben im Eck an der Pos 0,0... Dürfte doch garnicht sein, da sie ja nur gezeichnet werden wenn Sie aktiv sind...

Hier mal der CODE der die Ballons zeichnet...


BlitzBasic: [AUSKLAPPEN]


.BALLON_ZEICHNEN

For I = 1 To 6

If Zeitballon + 700 <= MilliSecs() Then ; Alle 700 Millisekunden wird ein neuer Ballon gezeichnet

If Luftballon(I,0) = 0 Then

Luftballon(I,1) = 850 ; Position X
Luftballon(I,2) = Rnd(60,540) ; Position Y
Luftballon(I,3) = Rnd(0,3) ; Die Zukünftige Farbe
Luftballon(I,0) = 1 ; Ballon aktiv
Zeitballon = MilliSecs()
Exit

End If

End If


If Luftballon(I,0) = 1 Then ; Wenn Ballon aktiv ist dann

Luftballon(I,1) = Luftballon(I,1) - 2.5 ; Position wird verändert

If luftballon(I,1) < -50 Then
Luftballon(I,0) = 0 ; Wenn Luftballon außerhalb dann aktiv = 0
Luftballon(I,1) = 0
Luftballon(I,2) = 0
End If


Select Luftballon(I,3) ; Die Luftballons werden je nach Sorte gezeichnet

Case 0 DrawImage Ballon, Luftballon(I,1),Luftballon(I,2), 0
Case 1 DrawImage Ballon, Luftballon(I,1),Luftballon(I,2), 1
Case 2 DrawImage Ballon, Luftballon(I,1),Luftballon(I,2), 2
Case 3 DrawImage Ballon, Luftballon(I,1),Luftballon(I,2), 3

End Select

End If


Next




Return
  • Zuletzt bearbeitet von g4ndhi am Di, März 03, 2015 1:42, insgesamt einmal bearbeitet
 

g4ndhi

BeitragDi, März 03, 2015 1:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Beides hat sich grade eben erledigt Wink


Die Ursache für das Flackern war das EXIT

Und das sie kurz im Eck oben aufgeblitzt sind lag daran das die Koordinaten auf 0 gesetzt wurden und danach der
Draw Befehl kam. Das ganze gedreht und es geht...


Sorry! Habe schon länger an den Problem gesucht... Hab gedacht jetzt Poste ich das mal. Das ich jetzt die Lösung finde war so nicht gedacht Wink
 

Kruemelator

BeitragDi, März 03, 2015 7:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Code ist ordendlich eingerückt und gut kommentiert (wahrscheinlich besser als die meisten hier Very Happy ). Was aber ins Auge sticht ist dass du Gosub benutzt. Ganz einfach: Lass es bleiben! Nimm Funktionen, die können das selbe und noch mehr. Z.B. Variablen die es nur in der Funktion gibt oder Werte die zurüchgegeben werden können.

BlitzBasic: [AUSKLAPPEN]
Function Ballon_Zeichen()
;Code...
End Function
 

g4ndhi

BeitragDo, März 05, 2015 0:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja beim nächsten Programm werde ich Funktionen benutzen... Wink


Doof ist halt auch das in Gosubs die Variablen überall gelten.. da muss man schon gut aufpassen...

Wink

DAK

BeitragDo, März 05, 2015 12:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein Programm von Gosub auf Funktionen umzustellen ist nicht so schwer. Ersetz einfach mal die Gosubs, der Compiler wird dir dann eh sagen, welche Variablen du wo brauchst.
Gewinner der 6. und der 68. BlitzCodeCompo

BladeRunner

Moderator

BeitragDo, März 05, 2015 14:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Unter BB wird er das leider nicht, da setzt er einfach die passenden Variablen mit 0 oder "" ein. Aber dennoch lohnt sich der Umbau.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

DAK

BeitragDo, März 05, 2015 16:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Uh, da hast du recht, hab vergessen, dass BB keinen SuperStrict-Modus hat. Dumme Designidee.
Gewinner der 6. und der 68. BlitzCodeCompo

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group