| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- ;Create 3d animation example
- ;Set up a simple nice looking level
- Graphics3D 640,480
- camera=CreateCamera()
- PositionEntity camera,0,12,-12
- RotateEntity camera,35,0,0
- light=CreateLight(2)
- PositionEntity light,1000,1000,-1000
- ground=CreatePlane(2)
- EntityAlpha ground,0.5
- EntityColor ground,0,0,255
- mirror=CreateMirror()
- ;Lets make a bouncing ball that squashes on impact with the floor.
- ball=CreateSphere(16)
- EntityShininess ball,1
- EntityColor ball,255,0,0
- ; Lets animate him and "record" the 3D animation for later playback
- bloat#=0 : flatten#=0 : ypos#=10
- For frame=1 To 10
- ;Drop the ball from height 10 to 2
- ypos = ypos - spd#
- spd#=spd#+.2
- PositionEntity ball,0,ypos,0
- ScaleEntity ball,1+bloat,1+flatten,1+bloat
- ;If the ball is low enough make it look increasingly squashed
- If frame>8
- bloat=bloat+1.5
- flatten=flatten-.25
- Else
- flatten=flatten+.05
- EndIf
- ;Record the frame!
- SetAnimKey ball,frame
- Next
- ;Now we need to add the frames we've just made to the sequence of "film"!
- seq = AddAnimSeq(ball,frame-1) ; total number of frames
- ;Play it back ping-pong!
- Animate ball,2,0.15
- While Not KeyHit(1)
- UpdateWorld
- RenderWorld
- Flip
- Wend
- End
|