一个让桌面下雪的ruby 小程序 snow(二)

2014-11-24 07:54:04 · 作者: · 浏览: 7
DC1, @px[i] - 1, @py[i] + 1)
end
#确定当前位置没有与另一个雪花重叠,否则返回0,用于防止由于不同雪花重叠造成雪花乱堆
if colorCmp == SnowCol
return 0
end
#分别获取ColorCmp与对比点的蓝、绿、红部分的差值
tempB = ((colorCmp & 0xFF0000).abs - (@pColor[i] & 0xFF0000)) / 0x10000
tempG = ((colorCmp & 0xFF00).abs - (@pColor[i] & 0xFF00)) / 0x100
tempR = ((colorCmp & 0xFF).abs - (@pColor[i] & 0xFF))
##返回对比度值
(tempR + tempG + tempB) / 3
end


def cc
ReleaseDC 0, @hDC1 #释放桌面窗口设备句柄
InvalidateRect 0, 0, 0 #清除所有雪花,恢复桌面
end


def run
trap(:INT){exit} #按 c-c 退出
timerStart #启动定时器


#等到所有进程退出后,主进程再退出
while(Thread.list.count != 1) do sleep 1 end
cc #结束运行
end
end


Snow.new.run


一个让桌面下雪的ruby 小程序 snow