Zeitgesteuertes Faden, aber wie ? [gelöst]
Übersicht BlitzMax, BlitzMax NG Beginners-Corner
d-bugBetreff: Zeitgesteuertes Faden, aber wie ? [gelöst] |
Di, Nov 15, 2005 13:30 Antworten mit Zitat |
|
---|---|---|
Gestern hatte ich mal eine kleine Denkblockade, die sich bis heute nicht gelöst hat...
Sagen wir einmal, ich möchte ein Image innerhalb einer bestimmten Zeit von Alpha1 nach Alpha2 faden. Wie müßte ich das wohl am sinnvollsten Anstellen? Ich schäme mich unglaublich, diese dämliche Frage zu stellen, weil das ja nun wirklich mehr Grundwissen ist als alles andere. Gestern hab ich Dummbatsch einfach die Differenz zwischen Alpha1 und Alpha2 durch die Zeit geteilt und das in jedem Loop zu Alpha1 addiert. Ist natürlich völliger Unsinn, aber mir will einfach der richtige Ansatz nicht einfallen. |
||
- Zuletzt bearbeitet von d-bug am Di, Nov 15, 2005 14:21, insgesamt einmal bearbeitet
bruZard |
Di, Nov 15, 2005 13:38 Antworten mit Zitat |
|
---|---|---|
Wieso ... war doch richtig.
Alpha-Differenz = Alpha2 - Alpha1 Sagen wir das Faden soll 1sek dauern, dann ist der Alphastep = Alpha-Differenz/1000 ...oder denke ich hier auch falsch? |
||
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32
User posted image |
d-bug |
Di, Nov 15, 2005 13:46 Antworten mit Zitat |
|
---|---|---|
Hm, mich wunderte allerdings dann , daß das Faden, daß eigentlich 2 Sekunden dauern sollte, gerade mal ca. 10 Sekunden gedauert hat | ||
Suco-XBetreff: ......... |
Di, Nov 15, 2005 14:02 Antworten mit Zitat |
|
---|---|---|
Interpolation hilft bei solchen Sachen immer ganz gut.
Mal meine Version. Code: [AUSKLAPPEN] Strict Graphics 800,600,0 Local Alpha1:Float = 1.0 Local Alpha2:Float = 0.0 Local AlphaNow:Float Local TimeTotal:Int = 5000 Local TimeNow:Int Local TimeStart:Int DrawText "Press any key",10,10 Flip WaitKey TimeStart = MilliSecs() Repeat Cls TimeNow = MilliSecs()-TimeStart AlphaNow = LinearInterpolate(Alpha1, Alpha2, TimeNow/Float(TimeTotal)) SetBlend ALPHABLEND SetAlpha AlphaNow DrawRect 0,0,500,500 Flip Until TimeNow=>TimeTotal Or KeyDown(KEY_ESCAPE) Function LinearInterpolate:Float(v1:Float, v2:Float, mu:Float) Return(v1*(1-mu)+v2*mu) End Function |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
d-bug |
Di, Nov 15, 2005 14:21 Antworten mit Zitat |
|
---|---|---|
Danke Suco-X, dafür bekommst du einmal Wäsche bügeln umsonst ! | ||
Übersicht BlitzMax, BlitzMax NG Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group