--star.lua --code by [GB]Siapran --15.02.2013 function drawstar(x,y,z) --draws the stars on buffer_1 with clipping if(x<132)and(x>0)and(y<68)and(y>0)then for(i=x-(8/z),x+(8/z),1)do for(j=y-(8/z),y+(8/z),1)do if (i<=128)and(i>=0)and(j<=64)and(j>=0)then nbdraw.pixel(i+1,j+1,0,1) end end end end end for(a=1,4,1)do --adjust contrast misc.contrast(-1) end clear nil for(a=1,64,1)do --black screen in buffer_2 nbdraw.line(1,a,128,a,2) end starlistx={} --global values for 3D positions starlisty={} starlistz={} for(a=1,16,1)do --generate first stars (16) starlistx[a]=misc.random(101)-50 starlisty[a]=misc.random(101)-50 starlistz[a]=a*5 end repeat --main loop nbdraw.copypage(2,1) --recall a black screen from buffer_2 for(a=1,16,1)do --draw stars drawstar(starlistx[a]/(starlistz[a]/10)+64,starlisty[a]/(starlistz[a]/10)+32,starlist[a]/2) end for(a=1,16,1)do --move stars towards camera starlistz[a]=starlistz[a]-1 if(starlistz[a]==2)then --regen if selected star is too close starlistx[a]=misc.random(101)-50 starlisty[a]=misc.random(101)-50 starlistz[a]=starlistz[a]+80 end end nbdraw.copypage(1,0) --copy buffer_1 on screen until key(0) --wait until a key is pressed