Mark's Coding Creations
Kaleidascope
Home
Kaleidascope
Gouraud Ellipses
Gouraud Quads
Gouraud Triangles
Draw And Fill
Gouraud_Circles
Rotate Image

kaleidascope.jpg

REM Project: Kaleidascope
REM Created: 12.2.2007 8:02:43
REM  by: Mark Garrett...bubbb@verizon.net
REM ***** Main Source File *****
REM

set display mode 1024,768,16

global c1: global c2: global c3: global c4

global n = 0
sync on : sync rate 0
for tr = 1 to 200
clrs()
x =  rnd(512)+1 : y = rnd(386)+386: sz = rnd(60)+2
if rnd(3)= 0 then goto b
if rnd(3)= 1 then goto c
if rnd(3)= 2 then goto dd
a: box x-sz,y-sz,x+sz,y+sz,c2,c1,c1,c2 : goto e
b: box x+sz,y-sz,x-sz,y+sz,c2,c1,c1,c2 : goto e
c: box x+sz,y-sz,x-sz,y+sz,c2,c2,c1,c1 : goto e
dd: box x+sz,y-sz,x-sz,y+sz,c2,c1,c2,c1
e:

next tr

get image 1,0,0,512,768,1
 cls

Draw_Rotated_Image(1,  512,384, 22,120, 100,512, 384, 0, 0)

get image 1,0,384,1024,768,1 `blend top/bot edges
flip bitmap 0
paste image 1,0,384
get image 1,0,0,512,768,1
mirror bitmap 0
paste image 1,0,0
 
get image 1,0,0,1024,768,0 `image texture for scrolling
 
Make light 1: show light 1
SET SPOT LIGHT 1, 1, 90
set light range 1,3000
position light 1,0,0,-50
point light 1,0,0,0
 

backdrop off
make object triangle 1,  -10,-10,-2,   0,-10,-2,   0,0,0    `7 o:clock vert
texture object 1,1
make object triangle 2,  -10,-10,0,   0,-10,0,   0,0,0    `4 o:clock hor
texture object 2,1  :zrotate object 2,90
yrotate object 2,-10
make object triangle 3,  -10,-10,1,   0,-10,1,   0,0,0    `1 o:clock vert
texture object 3,1 : zrotate object 3,180

make object triangle 4,  -10,-10,0,   0,-10,0,   0,0,0     `10 o:clock hor
texture object 4,1 :zrotate object 4,270
yrotate object 4, 10
`-----------------------------------------------------------
make object triangle 5,  -10,10,1,    0,10,1,    0,0,0     `11 o:clock  vert
texture object 5,1
`scale object texture 5,1,.90
make object triangle 6,  -10,10,0,    0,10,0,    0,0,0      `8 o:clock  hor
texture object 6,1 : zrotate object 6,90
yrotate object 6,-10
make object triangle 7,  -10,10,-2.1,    0,10,-2.1,    0,0,0      `5 o:clock  vert
texture object 7,1 : zrotate object 7,180

make object triangle 8,  -10,10,0,    0,10,0,    0,0,0      `2 o:clock  hor
texture object 8,1  : zrotate object 8,270
yrotate object 8,10

`------------------------------------------------- verts
SCALE OBJECT 1, 270, 206, 100   ` 7 o:clock
SCALE OBJECT 7, 270, 206, 100   ` 5 o:clock
SCALE OBJECT 5, 248, 190, 100   `11 o:clock
SCALE OBJECT 3, 248, 190, 100   ` 1 o:clock
`---------------------------------------------------hors
scale object 8, 200, 260, 100   ` 2 o:clock
scale object 2, 200, 260, 100   ` 4 o:clock
scale object 6, 200, 260, 100   ` 8 o:clock
scale object 4, 200, 260, 100  ` 10 o:clock

sync: sync off
do  ` DO DO DO DO DO DO DO

 aa# = .002: bb# = .004
for obj = 1 to 8

scroll object texture obj,  aa# ,  bb#
next obj
pause: if mouseclick() = 2 then goto pause
 if mouseclick() = 4
   get image 2,0,0,1024,768,1: save image "Kaleidascope.jpg",2 :wait 5000
   endif
   if mouseclick() = 1
   for obj = 1 to 8
   delete object obj
   next obj
   delete image 1
   end
   endif

loop    `LOOP LOOP LOOP LOOP LOOP LOOP LOOP LOOP LOOP LOOP LOOP LOOP LOOP LOOP LOOP
 
`                                 Functions:   Functions:  Functions:
`&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
function clrs()

dim culur(6)
culur(1) = rgb(255,0,0): culur(2) = rgb(255,255,0)
culur(4) = rgb(255,0,255)
culur(5) = rgb(0,255,0):culur(6) = rgb(0,0,255)
culur(3) = rgb(0,255,255)
cc = rnd(5)+1 :c1 = culur(cc)
cc1: cc = rnd(5)+1 :c2 = culur(cc)
if c2 = c1 then goto cc1
cc2: cc = rnd(5)+1 :c3 = culur(cc)
if c3 = c1 or c3 = c2 then goto cc2
cc3: cc = rnd(5)+1 :c4 = culur(cc)
if c4 = c1 or c4 = c2 or c4 = c3 then goto cc3
endfunction
`&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
`&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&n  function  &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Function Draw_Rotated_Image(ImageNumber, Xpos, Ypos, Angle#,ScaleX, ScaleY,HandleX, HandleY, Backsave, Transparency)

     Sprite 300000, Xpos, Ypos, ImageNumber  ` initiate sprite
     hide sprite 300000
     SET SPRITE 300000, Backsave, Transparency
     OFFSET SPRITE 300000, HandleX, HandleY
     stretch SPRITE  300000, ScaleX, ScaleY

rotate sprite 300000, Angle#
paste Sprite 300000, Xpos, Ypos
endfunction
`&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&