The code below is liable to cause an epileptic fit. It's just a few lines moving, but the flickering is unbearable. It's simply a few lines converted to sprites and moved around.
I have added SetSpriteSnap() and put all sprites on different layers. I have also added a lighter grey edge to the main white lines to suppress them a little. But it's still too bad to use.
Any ideas?
setwindowsize(1024,768,0)
SetVirtualResolution(1024,768)
createBackImages()
do
// If time for change
if Timer() > backSpeedNextChange#
backSpeedNextChange# = Timer() + random(1.2,5)
//Speed Change
for n = 1 to 4
direct = random(1,2)
backSprite[n].speed = random(BackSpeedMin, BackSpeedMax) / 10000.0
if direct = 2
backSprite[n].speed = backSprite[n].speed * -1
endif
next n
endif
for n = 1 to 4
inc backSprite[n].offset, backSprite[n].speed
if backSprite[n].offset > 1 then dec backSprite[n].offset, 1
if backSprite[n].offset < 0 then inc backSprite[n].offset, 1
SetSpriteUVOffset(backSprite[n].id,0,backSprite[n].offset)
next n
sync()
loop
end
function createBackImages()
if GetVirtualHeight() > GetVirtualWidth()
imgSize = GetVirtualHeight()
else
imgSize = GetVirtualWidth()
endif
backImage = CreateRenderImage(imgSize, imgSize,0,0)
SetRenderToImage(backImage,0)
c1 = MakeColor(255,255,255)
c2 = MakeColor(128,128,128)
ClearScreen()
for n = 1 to (imgSize) step (imgSize / 8)
DrawLine(1,n,imgSize,n, c1,c1)
DrawLine(1,n-1,imgSize,n-1, c2,c2)
DrawLine(1,n+1,imgSize,n+1, c2,c2)
next n
Render()
SetRenderToScreen()
SetImageWrapU(backImage,1)
SetImageWrapV(backImage,1)
for n = 1 to 4
backSprite[n].id = CreateSprite(backImage)
SetSpritePositionByOffset(backSprite[n].id,GetVirtualWidth()/2, GetVirtualHeight()/2)
SetSpriteDepth(backSprite[n].id, 50-n)
SetSpriteSnap ( backSprite[n].id, 1 )
if n > 2
SetSpriteAngle(backSprite[n].id,90)
endif
next n
BackSpeedMin = 2
BackSpeedMax = 10
endfunction
type tBackSprite
id
speed as float
offset as float
tween as integer
endtype
global BackSprite as tBackSprite[4]
global backImage
global backSpeedMax as float
global backSpeedMin as float