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
