1. fading to grey... - Reply
-- fade.ex
-- Jiri Babor
-- j.babor at gns.cri.nz
include graphics.e
include image.e -- get_all_palette()
include get.e -- get_key()
object junk
sequence s1,s2,s3
integer key
procedure fade(sequence s, integer steps, atom dt)
-- change gradually current palette to palette described by
-- rgb sequence s, in number of steps, over time interval dt
sequence p,dp
atom t
dt=dt/steps
p=get_all_palette()
dp=(p-s)/steps
t=time()
for i=1 to steps-1 do
p=p-dp
while time()-t<dt do
end while
t=time()
all_palette(p)
end for
all_palette(s)
end procedure
-- main ------------------------------------------------------------------------
tick_rate(100) -- better time resolution
junk=graphics_mode(18)
s1=repeat({0,0,0},16) -- starting -all black- palette
s2=get_all_palette() -- save default palette
-- generate gray scale
s3={}
for i=1 to length(s2) do
junk=s2[i][1]+s2[i][2]+s2[i][3]
s3=append(s3,repeat(junk,3)/3)
end for
-- insert your own graphics here
puts(1,"press a key to continue..")
all_palette(s1) -- start with all black palette
ellipse(14,1,{100,100},{500,300})
-- fade in from black to full color
fade(s2,50,2.00)
key=wait_key()
-- fade to gray
fade(s3,50,2.00)
key=wait_key()
-- fade out
fade(s1,50,2.00)
junk=graphics_mode(-1)