Sachen über Zeit erledigen
Übersicht

fliegeBetreff: Sachen über Zeit erledigen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wie kann ich bestimmte sachen per Zeit erledigen? Zum Beispiel wie mach ich so einen Art Fading wenn man einen Bereich betritt (Das man nicht gleich irgendwo neu aufploppt sondern das man langsam über Alpha sichtbar wird. Oder das ich mich in einer bestimmten Zeit in einem bestimmten Winkel drehe?
Wäre echt nett wenn mir das mal einer verraten könnte Fliege |
||
Wer weiß was kommt.. ? |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Meinst du sowas hier? Mit Cursor links/rechts kannst du zwei Rects bewegen. Mit Space kannst du ein langsamen Rechner 'simulieren'. Das untere Quadrat bewegt sich immer gleich schnell (bleibt also von der Rechnergeschwindigkeit unbeeinflusst). Das obere Quadrat bewegt sich immer nur so schnell, wie der Rechner ist. Das ganze kann man auch mit der Geschwindigkeit der Körper selbst machen...
Code: [AUSKLAPPEN] Graphics 400,200,0,2
SetBuffer BackBuffer() While Not KeyHit(1) xg=0 If KeyDown(203) Then xg=-1 If KeyDown(205) Then xg=+1 If KeyHit(57) Then sp=1-sp If sp=1 Then Delay 50 Text 0,0,"ms: "+(MilliSecs()-ms) Text 0,12,"sp: "+sp xp1=xp1+xg If MilliSecs()>ms+50 Then ms=MilliSecs() xp2=xp2+xg End If Rect xp1,120,10,10,0 Rect xp2,140,10,10,0 Flip Cls Wend End |
||
fliege |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
So in der Richtung nur das man zB einen Cube fadet (über eine gewisse Zeit hinweg) | ||
Wer weiß was kommt.. ? |
![]() |
Suco-XBetreff: ........ |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sagen wir mal es geht um den Farbanteil r
Code: [AUSKLAPPEN] ZielR = 255 ZielZeit = 2000 ms ZeitInMs = 0 r = 0 ZeitInMs = 1000 r = 128 ZeitInMs = 2000 r = 255 Kleine Auflistung. Wenn 2000 ms verstrichen sind, soll r = 255 stehen Zeit auf 0, r = 0 Zeit auf 1000, r = 128 usw. Daraus können wir ne kleine Formel rausfiltern. Drum rechnen wir 255.0/ZielZeit und dieses Ergebnis Multiplizieren wir mit der verstrichenen Zeit. r = VerstricheneZeit*(255.0/ZielZeit) So gehts halt auch für Alpha und sowas. Hoffe ich konnte dir kleinen Denkanstoss geben. Mfg Suco |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
fliege |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke erstmal
Denkanstoß hab ich jetzt... warum funktioniert das nicht? BlitzBasic: [AUSKLAPPEN] If turnback = 1 Then Wenn ihr wollt kann ich auch den ganzen Code uppen - ist eh so das man nichts anderes dafür brauhT ![]() Kann mir da bitte jemand helfen? Ich versteh das nämlich leider nicht... zum Code: Wenn keine Maustaste gedrückt ist wird turnback auf 1 gesetzt. oldpitch und oldyaw sind die rotationen vor dem drehvorgang und g_turnbacktimer_start ist millisecs() sobal turnback = 1... Fliege |
||
Wer weiß was kommt.. ? |
![]() |
x-pressive |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mach's doch nicht kompliziert. Wenn ein Objekt langsam einfaden soll, nimm' eine Variable, in der der Alpha-Wert des Objekts gespeichert ist:
alpha# = 1.0 Und in deiner Hauptschleife: EntityAlpha MeinObjekt, alpha : If alpha < 1.0 Then alpha = alpha + deltaTime * .01 Zack, das war's. Wann immer du "alpha" jetzt in deinem Programm auf 0 setzt, fadet das Objekt langsam wieder ein. Wenn du kein Delta-Timing benutzt, streiche einfach das "deltaTime *". Der andere Wert gibt die Geschwindigkeit an, mit der das Objekt einfadet. |
||
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group