-- LUA Script - precede every function and global member with lowercase name of script + '_main' local sprites = {} local spriteImage = spriteImage or LoadImage( "scriptbank\\radar\\radar-white.png" ) local maxSprites = 5000 local minSize = 4 local maxSize = 10 local minAlpha = 20 local maxAlpha = 80 local minSpeed = 0.2 local maxSpeed = 0.33 function spritefun_init( e ) end local rand = math.random local modf = math.modf local function randCol() return modf( rand( 0, 255 ) ) end local function randVal( minVal, maxVal ) return minVal + rand() * ( maxVal - minVal ) end local function randomSprite() local spr = CreateSprite( spriteImage ) local size = randVal( minSize, maxSize ) SetSpriteSize ( spr, -1, size ) SetSpriteOffset ( spr, -1, size / 2 ) local x = randVal( -size / 2, 100 + size / 2 ) local y = randVal( -size / 2, 100 + size / 2 ) SetSpritePosition ( spr, x, y ) SetSpriteDepth ( spr, rand( 0, 100 ) ) SetSpriteColor ( spr, randCol(), randCol(), randCol(), rand( minAlpha, maxAlpha ) ) local speed = randVal( minSpeed, maxSpeed ) return { spr = spr, x = x, y = y, size = size, speed = speed } end local function updateSprites() for _, v in pairs( sprites ) do v.y = v.y + v.speed if v.y > 100 + v.size / 2 then v.y = -v.size / 2 v.x = randVal( -v.size / 2, 100 + v.size / 2 ) SetSpriteColor ( v.spr, randCol(), randCol(), randCol(), rand( minAlpha, maxAlpha ) ) v.speed = randVal( minSpeed, maxSpeed ) end SetSpritePosition ( v.spr, v.x, v.y ) end end function spritefun_main( e ) if sprites[ 1 ] == nil then for i = 1, maxSprites do sprites[ i ] = randomSprite() end return end updateSprites() end