Sachen über Zeit erledigen

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

fliege

Betreff: Sachen über Zeit erledigen

BeitragMo, Sep 19, 2005 15:18
Antworten mit Zitat
Benutzer-Profile anzeigen
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.. ?

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMo, Sep 19, 2005 15:36
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Sep 19, 2005 16:21
Antworten mit Zitat
Benutzer-Profile anzeigen
So in der Richtung nur das man zB einen Cube fadet (über eine gewisse Zeit hinweg)
Wer weiß was kommt.. ?

Suco-X

Betreff: ........

BeitragMo, Sep 19, 2005 17:00
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMi, Sep 21, 2005 13:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke erstmal
Denkanstoß hab ich jetzt...
warum funktioniert das nicht?
BlitzBasic: [AUSKLAPPEN]
		If turnback = 1 Then
turnpitch# = (MilliSecs() - g_turnbacktimer_start)*(oldpitch/2000)
turnyaw# = (MilliSecs() - g_turnbacktimer_start)*(oldyaw/2000)
RotateEntity g_dummypivot,turnpitch#,turnyaw#,0
If MilliSecs() - g_turnbacktimer_start > 2000 Then turnback = 0 : oldsaved = 0
EndIf

Wenn ihr wollt kann ich auch den ganzen Code uppen - ist eh so das man nichts anderes dafür brauhT Laughing
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

BeitragMi, Sep 21, 2005 14:10
Antworten mit Zitat
Benutzer-Profile anzeigen
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

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group