
-----------------------------------
Homer_simpson
Tue Jan 12, 2010 11:18 pm

stars warp 9?
-----------------------------------
product of boredom
View.Set ("graphics:500;500,offscreenonly")
const maxP := 300
const zoom := 10
const far := 2000
const blur := 5
colorback (black)
cls

type particle_t :
    record
        x, y, z, v : real
    end record


proc setP (var p : particle_t, x, y, z, v : real)
    p.x := x
    p.y := y
    p.z := z
    p.v := v
end setP


proc drawP (var p : particle_t)
    if p.z > 3 * p.v then
        %drawfilloval (round (p.x / p.z * zoom) + (maxx div 2), round (p.y / p.z * zoom) + (maxy div 2), 1, 1, white)
        for i : 1 .. blur
            drawdot (round (p.x / (p.z + (p.v * i)) * zoom) + (maxx div 2), round (p.y / (p.z + (p.v * i)) * zoom) + (maxy div 2), white)
        end for
    end if
end drawP



var pList : array 1 .. maxP of particle_t

for i : 1 .. maxP
    setP (pList (i), Rand.Int (-10000, 10000), Rand.Int (-10000, 10000), Rand.Int (0, far), Rand.Int (50, 100) / 100)
end for

loop
    for i : 1 .. maxP
        drawP (pList (i))
        if pList (i).z < 0 then
            setP (pList (i), Rand.Int (-10000, 10000), Rand.Int (-10000, 10000), Rand.Int (0, far), Rand.Int (50, 100) / 100)
        else
            pList (i).z -= pList (i).v
        end if
    end for
    View.Update
    cls
end loop


or if you like...

View.Set ("graphics:500;500,offscreenonly")
const maxP := 300
const zoom := 1
const far := 300
const blur := 5
colorback (black)
cls

type particle_t :
    record
        x, y, z, v : real
    end record


proc setP (var p : particle_t, x, y, z, v : real)
    p.x := x
    p.y := y
    p.z := z
    p.v := v
end setP


proc drawP (var p : particle_t)
    if p.z > 3 * p.v then
        %drawfilloval (round (p.x / p.z * zoom) + (maxx div 2), round (p.y / p.z * zoom) + (maxy div 2), 1, 1, white)
        for i : 1 .. blur
            drawdot (round (p.x / (p.z + (p.v * i)) * zoom) + (maxx div 2), round (p.y / (p.z + (p.v * i)) * zoom) + (maxy div 2), white)
        end for
    end if
end drawP



var pList : array 1 .. maxP of particle_t

for i : 1 .. maxP
    setP (pList (i), Rand.Int (-10000, 10000), Rand.Int (-10000, 10000), Rand.Int (0, far), Rand.Int (50, 100) / 100)
end for

loop
    for i : 1 .. maxP
        drawP (pList (i))
        if pList (i).z < 0 then
            setP (pList (i), Rand.Int (-10000, 10000), Rand.Int (-10000, 10000), Rand.Int (0, far), Rand.Int (50, 100) / 100)
        else
            pList (i).z -= pList (i).v
        end if
    end for
    View.Update
    cls
end loop


-----------------------------------
ProgrammingFun
Thu Jan 28, 2010 10:43 pm

RE:stars warp 9?
-----------------------------------
I like the second one better, it is faster and more interesting.

-----------------------------------
jdubzisyahweh
Wed Feb 24, 2010 11:53 am

Re: stars warp 9?
-----------------------------------
sooooooooooooooooooo trippy
