Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Graphics3D 640,480
- SetBuffer BackBuffer()
- SeedRnd MilliSecs()
- ; create camera
- camera=CreateCamera()
- CameraClsColor camera,160,160,160
- PositionEntity camera,0,0,-30
- middle=CreatePivot()
- EntityParent camera,middle
- ; create add texture - white cirlce on a black background
- For n=0 To 50
- Color 5+(n*5),5+(n*5),5+(n*5)
- Oval 10+n,10+n,236-(n*2),236-(n*2),1
- Next
- blob_tex=CreateTexture(256,256)
- blob=CreateImage(256,256)
- GrabImage blob,0,0
- CopyRect 0,0,256,256,0,0,ImageBuffer(blob),TextureBuffer(blob_tex)
- FreeImage blob
- max_blobs=100
- ; create blobs using add blend mode
- Dim blobs(max_blobs) ; blob sprites
- Dim xyblobs#(max_blobs,2) ; blob vector
- For n=0 To max_blobs
- blobs(n)=CreateSprite()
- EntityFX blobs(n),1
- EntityBlend blobs(n),3 ;set blend mode to add
- EntityTexture blobs(n),blob_tex
- xyblobs(n,0)=Rnd(-.1,.1)
- xyblobs(n,1)=Rnd(-.1,.1)
- xyblobs(n,2)=Rnd(-.1,.1)
- EntityColor blobs(n),Rand(0,255),Rand(0,255),Rand(0,255) ;give it a colour
- Next
- ; create cube texture
- Color 255,255,255
- Rect 0,0,256,256,1
- For n=0 To 7
- If n=0 Then Color 0,0,0
- If n=1 Then Color 0,0,255
- If n=2 Then Color 0,255,0
- If n=3 Then Color 0,255,255
- If n=4 Then Color 255,0,0
- If n=5 Then Color 255,0,255
- If n=6 Then Color 255,255,0
- If n=7 Then Color 255,255,255
- Rect n*32,n*32,32,32,1
- Next
- Color 0,0,0
- For n=0 To 255 Step 32
- Line 0,n,255,n
- Line n,0,n,255
- Next
- cube_tex=CreateTexture(256,256)
- cube=CreateImage(256,256)
- GrabImage cube,0,0
- CopyRect 0,0,256,256,0,0,ImageBuffer(cube),TextureBuffer(cube_tex)
- FreeImage cube
- ; create cube
- cube=CreateCube()
- ScaleEntity cube,11,11,11
- EntityTexture cube,cube_tex
- EntityFX cube,17 ;set fullbright and 2 sided textures
- EntityBlend cube,2 ;set multiply blend
- Repeat
- ; move the blobs around
- For n=0 To max_blobs
- MoveEntity blobs(n),xyblobs(n,0),xyblobs(n,1),xyblobs(n,2)
- ;bounce off sides
- If EntityX(blobs(n))<-10 Or EntityX(blobs(n))>10 Then xyblobs(n,0)=-xyblobs(n,0)
- If EntityY(blobs(n))<-10 Or EntityY(blobs(n))>10 Then xyblobs(n,1)=-xyblobs(n,1)
- If EntityZ(blobs(n))<-10 Or EntityZ(blobs(n))>10 Then xyblobs(n,2)=-xyblobs(n,2)
- Next
- ; turn camera
- TurnEntity middle,.1,.2,.3
- UpdateWorld
- RenderWorld
- Flip
- Until KeyHit(1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement