Function Animation zu schnell

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Cerbus

Betreff: Function Animation zu schnell

BeitragDi, Aug 31, 2004 14:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!
Zu meinem Problem.
Ich wollte eine Animation bzw. den Ablauf dafür in eine Funktion packen...
Wenn ich das alles normal mache bzw so:

Code: [AUSKLAPPEN]

Repeat
Cls

DrawImage Test, 200, 200, Frame

If Zaehlstart + 500 < MilliSecs() Then
Frame = Frame + 1
If Frame = 2 Then Frame = 0
Zaehlstart = MilliSecs()
EndIf

Flip
Forever

Dann läuft alles in der richtigen Geschwindigkeit ab.
Aber das wäre ja ein schmarrn alles immer wieder zu schreiben, deshalb hab ich alles in eine Funktion gepackt.

Code: [AUSKLAPPEN]

Function Bilder(Anzahl)
If Zaehlstart + 500 < MilliSecs() Then
Frame = Frame + 1
If Frame = Anzahl Then Frame = 0
Zaehlstart = MilliSecs()
Return Frame
EndIf
End Function


Wenn ich jetzt diese Funktion damit aufrufe geht sie zwar...
Code: [AUSKLAPPEN]

DrawImage Test, 200, 200, Bilder(2)

Aber sie läuft VIEL zu schnell ab....
Irgendwie kann ich das nicht ganz nachvollziehen warum das so ist...
kann mir da bitte jemand helfen?

Gruß
Cerbus

Jan_

Ehemaliger Admin

BeitragDi, Aug 31, 2004 14:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
global Zaehlstart,Frame,Anzahl
mal noch einfügen ausserhalb ner Funktion
between angels and insects

BladeRunner

Moderator

BeitragDi, Aug 31, 2004 15:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo, Jan_ hat das wesentliche schon gesacht:Die Vars müssen Global sein da sie sonst bei Verlassen der Func. "genullt" werden.

Edit: *freundlich-verneig-beim-Jan_-händeschüttel-und-in-die-Kamera-grins-für-die-Weltpresse*
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
  • Zuletzt bearbeitet von BladeRunner am Di, Aug 31, 2004 15:05, insgesamt einmal bearbeitet

Cerbus

BeitragDi, Aug 31, 2004 15:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen Dank! Very Happy
Oh mein gott bin ich besch... ^^

Jan_

Ehemaliger Admin

BeitragDi, Aug 31, 2004 15:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke Blade, so musste ich es nciht erklären, bin gerade zurückgekommen, um es zu erklären, aber du hast es ja schön kurz gefasst.

*Jan_reicht_Blade_runner_die_hand,_wegen_guter_zusammenarbeit*

@ Cerbus, jaja , bist du lol, ist nciht so gemeint Laughing
between angels and insects

Cerbus

BeitragDi, Aug 31, 2004 15:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber es gibt mit der Funktion ein kleines Problem.
Die Animationen sind nicht flüssig bzw. wenn es wieder von der 2 auf die 1 springt geht das zu schnell.
Wieso ist das in der Funktion so?

BladeRunner

Moderator

BeitragDi, Aug 31, 2004 15:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Function Bilder(Anzahl)
If Zaehlstart + 500 < MilliSecs() Then
Frame = Frame + 1
If Frame = Anzahl Then Frame = 0
Zaehlstart = MilliSecs()
Return Frame ;<--------hier isser, der BUG!
EndIf
End Function

Du übergibst das aktuelle Frame nur wenn es sich wirklich ändert. mach das Return frame ausserhalb des If-endif sonst ist Frame meisstens 0...
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

Cerbus

BeitragDi, Aug 31, 2004 15:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Aso! Ich beginne zu kapieren. Wink
Dankeschön BladeRunner. =)
Mit so ner Community machst echt spaß proggen zu lernen. =)
 

hot-bit

Gast

BeitragDi, Aug 31, 2004 17:21
Antworten mit Zitat
Hoi,

....
sage ich auch immer ! Wink

Toni

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group