×

关注微信公众号

免备案网站空间虚拟主机双线空间域名查询PS数码后期
photoshop互助课堂数百G视频教程下载随时随地聆听大师开讲/课堂酷素材!视频教程打包下手绘教程
咔咔摄影抠图教程路径专辑photoshop cs3视频教程 
查看: 5294|回复: 46

怎么样做下雪效果好看?

[复制链接]

该用户从未签到

发表于 2009-1-10 21:41:58 | 显示全部楼层 |阅读模式
看了很多网上的代码,又看了很多动漫,特别是canon(几乎每集都有下雪的场景)
网上常见的代码是用sin或cos使雪花有飘动的感觉,但感觉太假太有规律了,看了canon后觉得里面的下雪效果很好看,canon里的下雪效果是远处有很多小雪花,越近数量越少,速度越快,角度也越大,但同样远近有随机的大小,速度,角度偏差,雪花的形状是有点不规则的多边形,外边羽化,偶尔飘过几朵大雪花。
我尝试做了一个,能力有限,效果还不好看,雪花太多,还有点卡。
我做成了远近3层距离,如果分图层的话,可以在3层中放入背景图片,效果会更好,时间关系还没做
现在好像不能直接上传fla文件了,所以打包了
如果看不了,请更新到flash10
源码:
画一朵雪花,转成名字叫"snow"的类
第一帧上
stop()
var speed:Array=new Array()
var offset:Array=new Array()
function ra(a:Number=1):Number{
        return Math.random()*a
}
for(var i:int=0;i<200;i++){
        this["snow"+i]=new snow()
        this["snow"+i].x=ra(550)
        this["snow"+i].y=ra(400)
        this["snow"+i].scaleX=this["snow"+i].scaleY=ra(0.1)+0.1
        this["snow"+i].alpha=ra(0.5)+0.5
        speed=ra()+0.5
        offset=(ra()>0.499999?1:-1)*ra(0.3)
        addChild(this["snow"+i])
}
for(i=200;i<280;i++){
        this["snow"+i]=new snow()
        this["snow"+i].x=ra(550)
        this["snow"+i].y=ra(400)
        this["snow"+i].scaleX=this["snow"+i].scaleY=ra(0.3)+0.2
        this["snow"+i].alpha=ra(0.3)+0.7
        speed=ra(2)+1
        offset=(ra()>0.499999?1:-1)*ra(0.6)
        addChild(this["snow"+i])
}
for(i=280;i<299;i++){
        this["snow"+i]=new snow()
        this["snow"+i].x=ra(550)
        this["snow"+i].y=ra(400)
        this["snow"+i].scaleX=this["snow"+i].scaleY=ra(0.8)+(ra()>0.9?1:0)
        this["snow"+i].alpha=ra(0.1)+0.9
        speed=ra(8)+8
        offset=(ra()>0.499999?1:-1)*ra(3)
        addChild(this["snow"+i])
}
function sn():void{
                for(var j:int=0;j<200;j++){
                        this["snow"+j].y+=speed[j]
                        this["snow"+j].x+=offset[j]
                        if(this["snow"+j].y>400){
                                this["snow"+j].y=0
                                this["snow"+j].x=ra(550)
                                this["snow"+j].scaleX=this["snow"+j].scaleY=ra(0.1)+0.1
                                speed[j]=ra()+0.5
                                offset[j]=(ra()>0.499999?1:-1)*ra(0.3)
                        }
                }
                for(j=200;j<280;j++){
                        this["snow"+j].y+=speed[j]
                        this["snow"+j].x+=offset[j]
                        if(this["snow"+j].y>400){
                                this["snow"+j].y=-5
                                this["snow"+j].x=ra(550)
                                this["snow"+j].scaleX=this["snow"+j].scaleY=ra(0.3)+0.2
                                speed[j]=ra(2)+1
                                offset[j]=(ra()>0.499999?1:-1)*ra(0.6)
                        }
                }
                for(j=280;j<299;j++){
                        this["snow"+j].y+=speed[j]
                        this["snow"+j].x+=offset[j]
                        if(this["snow"+j].y>400){
                                this["snow"+j].y=-10
                                this["snow"+j].x=ra(550)
                                this["snow"+j].scaleX=this["snow"+j].scaleY=ra(0.8)+(ra()>0.9?1:0)
                                speed[j]=ra(8)+8
                                offset[j]=(ra()>0.499999?1:-1)*ra(3)
                        }
                }
}
setInterval(sn,30)




[ 本帖最后由 dreamdesign 于 2009-1-10 21:48 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?[免费注册]

x

评分

参与人数 1 +5 +1 收起 理由
zctmh0336 + 5 + 1 支持探讨

查看全部评分

该用户从未签到

发表于 2009-1-10 22:05:20 | 显示全部楼层
效果还行,大雪花可以少点,下落的速度再慢些。
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2009-1-10 22:26:07 | 显示全部楼层
大雪花是故意的jc:sweat ,动漫里的大雪花很好看,仿佛就在眼前掠过,不过没那么多
用钢笔工具随便画了点,不好看,将就着看看吧jc:sweat


[ 本帖最后由 dreamdesign 于 2009-1-10 22:38 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?[免费注册]

x
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2009-1-10 22:34:12 | 显示全部楼层
不错,欣赏!
解压后,怎么原文件用AS3与8.0都打不开?均报错为:意外的文件格式。晕jc:yiwen

[ 本帖最后由 sunshijiu 于 2009-1-10 22:36 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2009-1-10 22:36:57 | 显示全部楼层
请用Flash CS4打开,老的版本可能不能打开
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2009-1-10 22:41:49 | 显示全部楼层
哇~~~~~原来这是AS4做的呀!AS3还没有捂热乎,就开始老了。jc:han
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2009-1-10 22:54:48 | 显示全部楼层
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2009-1-10 23:06:18 | 显示全部楼层
jc:sweat 很好玩哦,就是不会做
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2009-1-10 23:58:08 | 显示全部楼层

回复 7楼 意维星空 的帖子

看了。做得不错!感觉层多得恐怖了一点!总之很jc:qiang !!!
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2009-1-11 08:26:28 | 显示全部楼层
不错不错,
太好看了,o(∩_∩)o...
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2009-1-11 08:44:59 | 显示全部楼层
原帖由 意维星空 于 2009-1-10 22:54 发表
这是我做的雪样,请指教
http://bbs.jcwcn.com/viewthread. ... 2%CE%AC%D0%C7%BF%D5

看起来好像你的比较真实,而我的比较卡通化
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2009-1-11 08:47:09 | 显示全部楼层

回复 11楼 dreamdesign 的帖子

正有这样的感觉
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2009-1-11 08:48:39 | 显示全部楼层
原帖由 sunshijiu 于 2009-1-10 22:41 发表
哇~~~~~原来这是AS4做的呀!AS3还没有捂热乎,就开始老了。jc:han

是flash CS4,现在还没有AS4了jc:sweat
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2009-1-11 08:50:46 | 显示全部楼层
原帖由 sanbos 于 2009-1-11 08:47 发表
正有这样的感觉

动漫看多了,改不掉了jc:sweat
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2009-1-11 16:24:01 | 显示全部楼层
jc:qie 其实各有千秋,一种可以在实景中用,一种用于动漫场景要漂亮很多~jc:qiang 过来学习的~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | [免费注册]

本版积分规则