I was bored at home, and just for fun, the idea came into my head to do something like the shutter of a camera. That is what I have so far.
autocam off:sync on :hide mouse :set display mode 800,600,32 :set ambient light 0 :hide light 0
color backdrop 0 :make light 1
make object box 100,12,12,1 :position object 100,0,0,2:set object emissive 100,rgb(50,50,255) :ghost object on 100
for i= 1 to 6
make object box i,10,16,1: offset limb i,0,-9,0,0: zrotate object i,i*60: fix object pivot i
next i
make object box 500,5,5,5 :position object 500,0,0,20 :move camera -15 :rt#=-56.5
do
g#=g#+0.5 :rotate object 500,g#,g#,g# :set cursor 0,0 : print "Upkey/Downkey"
if upkey() then rt#=rt#+0.2 else if downkey() then rt#=rt#-0.2
if rt#>0 then rt#=0 else if rt#<-56.5 then rt#=-56.5
for i= 1 to 6
rotate limb i,0,2,0,rt#
next i
set camera fov 70-rt#/2
sync
loop
For those who like funny codes, enjoy it !!
Editet
New update with a corridor
Compressed
ink rgb(40,40,40),0:box 0,0,100,100:ink rgb(60,60,60),0:box 0,0,50,50:ink rgb(10,10,10):box 0,0,100,4:get image 1,0,0,100,100
autocam off:sync on:set ambient light 10:color backdrop 0:hide light 0 :hide mouse
make light 1:position light 1,0,0,30:color light 1,rgb(50,255,50):set light range 1,50 :make light 2:position light 2,0,0,-30:color light 2,rgb(50,50,255):set light range 2,50
make object box 10,10,15,10:set object cull 10,0
for i=1 to 6: make object box i,10.5,15,10: offset limb i,0,-9,0,0: zrotate object i,i*60: fix object pivot i
perform csg difference 10,i: scale object i,100,100,1: texture object i,1:scale object texture i,5,5 :next i
scale object 10,100,100,1000:make object plain 11,15,15:perform csg difference 11,10:delete object 10:set object radius 11,0:scale object 11,102,102,102
make object sphere 15,200,50,5:scale object 15,100,0,100:position object 15,0,-3,0:texture object 11,1:scale object texture 11,6,6 :position camera 0,0,-20
point camera 0,0,0 :rt#=-60 :do :if camera position z()>-8 and camera position z()<10 then rt#=rt#+0.4 else rt#=rt#-0.4
if rt#>0 then rt#=0 else if rt#<-54.5 then rt#=-54.5 :
for i= 1 to 6: rotate limb i,0,2,0,rt# :next i
rem camera control
control camera using arrowkeys 0,0.05,0.05 :a#=wrapvalue(a#+mousemovex()/2) :cam#=wrapvalue(cam#+mousemovey()/2) :rotate camera cam#,a#,0
if leftkey() then move camera left 0.05 else if rightkey() then move camera right 0.05 rem This line only with Matrixutils1
x#=camera position x() :z#=camera position z()
if x#<-2then x#=-2
if x#>2 then x#=2
if z#>40 then z#=40
if z#<-40 then z#=-40
position camera x#,-1,z# :sync :loop
Uncompressed
ink rgb(40,40,40),0
box 0,0,100,100
ink rgb(60,60,60),0
box 0,0,50,50
ink rgb(10,10,10)
box 0,0,100,4
get image 1,0,0,100,100
autocam off
hide mouse
sync on
set ambient light 10:color backdrop 0
hide light 0
make light 1:position light 1,0,0,30:color light 1,rgb(50,255,50):set light range 1,50
make light 2:position light 2,0,0,-30:color light 2,rgb(50,50,255):set light range 2,50
make object box 10,10,15,10
set object cull 10,0
for i=1 to 6
make object box i,10.5,15,10
offset limb i,0,-9,0,0: zrotate object i,i*60: fix object pivot i
perform csg difference 10,i
scale object i,100,100,1
texture object i,1:scale object texture i,5,5
next i
rem corridor
scale object 10,100,100,1000
make object plain 11,15,15
perform csg difference 11,10
delete object 10
set object radius 11,0
scale object 11,102,102,102
rem floor
make object sphere 15,200,50,5
scale object 15,100,0,100
position object 15,0,-3,0
texture object 11,1
scale object texture 11,6,6
position camera 0,0,-20
point camera 0,0,0
rt#=-60
do
rem door controls
if camera position z()>-8 and camera position z()<10 then rt#=rt#+0.4 else rt#=rt#-0.4
if rt#>0 then rt#=0
if rt#<-54.5 then rt#=-54.5
for i= 1 to 6
rotate limb i,0,2,0,rt#
next i
rem camera control
control camera using arrowkeys 0,0.05,0.05
a#=wrapvalue(a#+mousemovex()/2)
cam#=wrapvalue(cam#+mousemovey()/2)
rotate camera cam#,a#,0
if leftkey() then move camera left 0.05 `Matrixutils1
if rightkey() then move camera right 0.05 `Matrixutils1
x#=camera position x()
z#=camera position z()
if x#<-2then x#=-2
if x#>2 then x#=2
if z#>40 then z#=40
if z#<-40 then z#=-40
position camera x#,-1,z#
sync
loop
I'm not a grumpy grandpa