AppTitle "Particle Blood Example by Eikon 05.03.05" Graphics 640, 480, 16, 2 SetBuffer BackBuffer() SeedRnd MilliSecs() Type Obj Field X, Y, A, R#, S#, C End Type Repeat If MouseHit(1) = True Then For i = 0 To 500 ; Increase for more blood o.Obj = New Obj o\X = MouseX(): o\Y = MouseY(): o\A = Rand(0, 359) o\R = 0.0: o\C = Rand(178, 255): o\S = Rnd(.1, 6) Next EndIf LockBuffer For o.Obj = Each Obj ; Onscreen check If (o\R * Cos(o\A) + o\X) > 2 And (o\R * Cos(o\A) + o\X) < 638 And (o\R * Sin(o\A) + o\Y) > 2 And (o\R * Sin(o\A) + o\Y) < 478 Then argb = (0 Or (0 Shl 8) Or (o\C Shl 16) Or ($ff000000)) WritePixelFast o\R * Cos(o\A) + o\X, o\R * Sin(o\A) + o\Y, argb tmp = (o\C + Rand(-50, 50)) Mod 255 argb = (0 Or (0 Shl 8) Or (tmp Shl 16) Or ($ff000000)) WritePixelFast o\R * Cos(o\A) + o\X - 1, o\R * Sin(o\A) + o\Y, argb tmp = (o\C + Rand(-50, 50)) Mod 255 argb = (0 Or (0 Shl 8) Or (tmp Shl 16) Or ($ff000000)) WritePixelFast o\R * Cos(o\A) + o\X + 1, o\R * Sin(o\A) + o\Y, argb tmp = (o\C + Rand(-50, 50)) Mod 255 argb = (0 Or (0 Shl 8) Or (tmp Shl 16) Or ($ff000000)) WritePixelFast o\R * Cos(o\A) + o\X, o\R * Sin(o\A) + o\Y - 1, argb tmp = (o\C + Rand(-50, 50)) Mod 255 argb = (0 Or (0 Shl 8) Or (tmp Shl 16) Or ($ff000000)) WritePixelFast o\R * Cos(o\A) + o\X, o\R * Sin(o\A) + o\Y + 1, argb EndIf o\R = o\R + o\S o\C = o\C - 2 If o\C <= 78 Then Delete o Next UnlockBuffer Flip: Cls Until KeyDown(1)