基于vb算法+picture+timer控件制作的39种动画效果,类似屏保(完整原程序)
动画播放器程序,在win2003调试通过,详细请自行下载进行学习测试,程序大小13k
下载地址:http://www.lshdic.com/download/lshdic/vb_xiaoguo.rar
代码浏览:
dim xiaoguo as integer '选择产生的效果
dim wid as long '显示器的宽
dim hei as long '显示器的高
dim pos1 as long '产生效果所必须的记数游标
dim coloris as integer '由用户选择的颜色效果,0=随机任意色,1=随机渐变色
dim colorstart(2) as integer '当选择随机渐变色时,该数组为了实现随机色彩的记录
dim heibai as boolean '黑白对比色时,决定是否走向黑的或白的一面
dim heibaicolor as integer '范围0-255,为了记录黑白对比色,黑白渐淡色,黑百渐浓色的灰度
dim lihe as boolean '为完成天地之吻,沉睡之心做出离合判断
dim pos2 as long '为完成地狱之火做出持续的喷放效果
dim xx() as long '为完成生命繁衍,计算球体向右的移动量
dim yy() as long '为完成生命繁衍,计算球体向下的移动量
dim jiax() as boolean '为完成生命繁衍,计算是否增加或减少xx
dim jiay() as boolean '为完成生命繁衍,计算是否增加或减少yy
dim rectmax as integer '为完成“数据阵列”,计算x,y的最大阵列
dim hang as integer '为完成“现代言论”,计算到了第几行了
dim pos3 as long '为完成“旋转光线”,计算第二条线的移动偏差
dim bcolor as string '为历史记录保存画布的背景颜色
private sub command1_click(index as integer) '39个按钮接收到单击事件时(初始化效果)
p.cls: p.currentx = 0: p.currenty = 0: pos1 = 0: pos2 = 0: p.fillcolor = bcolor
p.fontsize = 9: p.fontbold = false: p.backcolor = bcolor: lihe = false
p.fillstyle = 1: pos3 = 0 '上三行初始化播放器
select case index
case 5: p.drawwidth = 10 'drawwidth定义线段的粗度
case 7: p.drawwidth = 8
case 8: p.drawwidth = 9
case 9: p.drawwidth = 3
case 10: p.drawwidth = 3
case 11: p.drawwidth = 3
case 12: p.drawwidth = 3
case 13: p.drawwidth = 3
case 14: p.drawwidth = 6
case 15: p.drawwidth = 3
case 16: p.drawwidth = 3
case 17: p.drawwidth = 3
case 18: p.drawwidth = 5
case 19:
redim xx(5): redim yy(5): redim jiax(5): redim jiay(5) '为实现多线程,初始化线程存储数组
for i = 0 to 4
randomize
xx(i) = wid * rnd: yy(i) = hei * rnd
next: p.drawwidth = 1
case 21: p.drawwidth = 3
case 22: rectmax = round(rnd * 50): p.drawwidth = 1
case 23: p.fontsize = 12: p.fontbold = true: hang = 1
case 26: p.fontsize = 12: p.fontbold = true
case 27
redim xx(5): redim yy(5): redim jiax(5): redim jiay(5)
for i = 0 to 4
randomize
xx(i) = wid * rnd: yy(i) = hei * rnd
next: p.drawwidth = 1: p.backcolor = vbblack
case 29: p.drawwidth = 50
case 31: redim xx(5): redim yy(5): redim jiax(5): redim jiay(5)
xx(0) = wid * rnd: yy(0) = hei * rnd: p.drawwidth = 1
case 33: p.drawwidth = 5
case 34: p.drawwidth = 1
case 37: p.fillstyle = 0: p.drawwidth = 2
case else
p.drawwidth = 1
end select
xiaoguo = index: timer1.enabled = true '开始运行播放器
end sub
private sub form_load()
xiaoguo = 0: p.backcolor = vbwhite: bcolor = vbwhite
for i = 0 to 2: colorstart(i) = round(rnd * 255): next '启动时生成三个随机原色
end sub
private sub form_resize() '窗体移动时改变控件布局以及部分参数设置
on error resume next
p.width = me.scalewidth - 200: frame1.top = me.scaleheight - frame1.height - 100
p.height = frame1.top - 100
if me.scalewidth > frame1.width then
frame1.left = me.scalewidth / 2 - frame1.width / 2
end if
s.top = p.top + p.height - s.height
wid = p.width: hei = p.height
end sub
private sub menu01_click(index as integer) '控制菜单中菜单列的单击
select case index
case 1: timer1.enabled = not timer1.enabled '播放/停止