fb:porticula NoPaste
einfaches Partikelsystem: Starfly
Uploader: | Volta |
Datum/Zeit: | 10.02.2008 13:25:44 |
'Starfly.bas - by Volta
'mit FB0.18.3 und FBEdit am 10.02.2008 erstellt
'einfaches Partikelsystem
Const As Integer n=200 'Anzahl Partikel
Type Particle
x As Single 'Position x
y As Single 'Position y
vx As Single 'Geschwindigkeit x
vy As Single 'Geschwindigkeit y
life As Integer 'Lebensdauer
End Type
Dim part(n) As Particle
Dim As Integer breit, hoch
Screen 18, 32
ScreenInfo breit, hoch 'an Screenmodus anpassen
Randomize Timer
Do
ScreenLock 'anzeigen sperren
For i As Integer = 0 To n 'jeden Partikel
With part(i)
'PSet (.x, .y),0 'Partikel löschen
Circle (.x, .y),Abs(.vx*.vy*8),0,,,,f
If .life = 0 Or _ 'erloschen oder
.x > breit Or .x < 0 Or _ 'außerhalb des
.y > hoch Or .y < 0 Then 'Screens ?
.vx = (Rnd-.5) 'dann neuer Partikel
.vy = (Rnd-.5)*.75
.life = (Rnd *800)+300
.x = breit/2+(.vx*50)
.y = hoch/2+(.vy*50)
Else
.life -= 1 'sonst neue Position
.x = .x +.vx 'berechnen
.y = .y +.vy
.vx *= 1.001
.vy *= 1.001
End If
'PSet (.x, .y),-1 'Partikel zeichnen
Circle (.x, .y),Abs(.vx*.vy*8),-.life,,,,f'schöner Effekt
End With
Next
ScreenUnlock'anzeigen zulassen
Sleep 1 'senkt CPU - Last
ScreenSync 'anzeigen
Loop Until InKey = Chr(27)