Enjoy!
` +------------------------------+
` | Title: 15 line demo thingy! |
` | Author: sonic |
` | Tested: DBPro 3.1 |
` +------------------------------+
s$="..DarkBASIC Professional is the mutts nuts!" : sync on : randomize timer() : hide mouse : autocam off
create bitmap 1,128,128 : for f=1 to 50 : e=rnd(255) : dot rnd(127),rnd(127),rgb(e,e,e) : next f
get image 99,0,0,128,128 : make object sphere 99,-5000 : texture object 99,99 : scale object texture 99,16,16 : set object 99,1,0,0,1,0,0
make object sphere 1000,100 : cls rgb(0,0,255) : for f=0 to 128 : for g=0 to 128 : y=rnd(200)
dot f,g,rgb(y,y,255) : next g : next f : get image 1000,0,0,128,128 : texture object 1000,1000
ink rgb(255,255,255),0 : set text font "Comic Sans MS" : set text size 124 : for f=1 to len(s$) : cls rgb(rnd(255),rnd(255),rnd(255))
center text 64,0,mid$(s$,(len(s$)-f+1)) : get image f,0,0,128,128,1 : make object cube f,10 : texture object f,f : position object f,newxvalue(0,360.00/len(s$)*f,200),0,newzvalue(0,360.00/len(s$)*f,200)
yrotate object f,360.00/len(s$)*f : next f : for f=1 to 15 : make object sphere 2000+f,10 : set object light 2000+f,0
color object 2000+f,rgb(f*15,f*15,0) : next f : hide light 0 : make light 1 : set light range 1,200
make light 2 : set light range 2,150 : delete bitmap 1 : do : g#=wrapvalue(g#-0.02)
position light 1, newxvalue(0,g#,250),10,newzvalue(0,g#,250) : position camera newxvalue(0,g#,250),sin(g#*4.0)*10.0,newzvalue(0,g#,250) : point camera 0,0,0 : rotate camera camera angle x(),camera angle y(),(camera angle z()+(sin(g#*4.0)*10.0)) : yrotate object 99,wrapvalue(object angle y(99)-0.04)
for f=1 to 15 : position object 2000+f,55*sin((g#+f+50)*(f+10)),55*cos((g#+f+50)*(f+10)),55*sin((g#+f+f+50)*(f+10)) : next f : position light 2,object position x(2015),object position y(2015),object position z(2015) : point light 2,0,0,0
if b=0 and rnd(2000)=0 : b=360 : x1=rnd(2)-1 : y1=rnd(2)-1 : endif
if b > 0 : dec b : for f=1 to len(s$) : xrotate object f,wrapvalue(object angle x(f)+x1) : yrotate object f,wrapvalue(object angle y(f)+y1)
next f : endif : sync : loop
Gronda, Gronda