首页 » SEO优化 » php飘落技巧_html5 canvas动画教程下雪效果

php飘落技巧_html5 canvas动画教程下雪效果

访客 2024-11-20 0

扫一扫用手机浏览

文章目录 [+]

我们先剖析下这个效果:

1,随机产生雪花

php飘落技巧_html5 canvas动画教程下雪效果

2,雪花的产生不是同时产生,而是有先后顺序的

php飘落技巧_html5 canvas动画教程下雪效果
(图片来自网络侵删)

3,雪花怎么表示

4,怎么源源不断的下雪

5,雪花有大有小

搞清楚上面几个问题之后,这个效果基本上就实现了,

首先,由于这个是全屏效果,我采取动态创建canvas,把全体浏览器的宽与高赋值给canvas

调用oCanvas工具的init方法之后,就会在body的末了面追加一个canvas,id为canvas,宽、高与浏览器的宽、高相同,背景为玄色,晚高下雪的效果

接下来,有了舞台,演员该上场了,怎么产生雪花呢?这里把下雪干系的操作,封装成一个类,他的基本构造如下:

var Snow = function(){}

Snow.prototype = {

init : function(){},

draw : function( cxt ) {},

update : function(){}

}

这个类一共有三个方法( init, draw, update ).

init:初始化雪花的位置( x, y 坐标 )、速率、半径( 雪花的大小,在这里我们把雪花用半径不同的圆表示 )

那么init 加上 这个random函数 就可以完成雪花的初始化

1,雪花出来的时候,一样平常是在屏幕的最上方涌现的,以是雪花的y坐标都是0, 其次,雪花的x坐标是随机的,他的范围是从屏幕的左边到右边,那么便是 0 ~ width. 这个width便是canvas的宽度,也便是浏览器的宽度

2,雪花的半径r, 设置为1 ~ 5之间的任意值

3,雪花低落的速率设置为3 ~ 5之间的随机速率,这里我做的下雪是垂直方向往下飘,你可以拓展,考虑风力影响( 这个时候肯定有水平方向的速率 )

有了这些初始化的参数之后,我们完善draw方法,绘制雪花:

参数cxt便是canvas的高下文,这个函数很大略,便是一个arc方法调用init中设置的值来画圆(雪花),在该方法的末了调用了一个update方法,他是干嘛的?他是更新雪花在垂直方向的速率

在update方法中,我们做了边界判断: 雪花往下飘落的时候,肯定会消逝,消逝之后怎么处理?没有到达边界怎么处理?

canvas的高度减去雪花的半径,这便是雪花要消逝时候的边界,以是this.y < height - this.r 如果这个条件成立,那么解释雪花一贯在飘着,我们就要把雪花的y方向的位置更新,雪花看起来(‘正不才雪’),当一个雪花快要消逝的时候,我们再把他移动到初始的位置,这样看起来便是在圆圆不断的下雪,而不须要重新绘制雪花(如果这样做,肯定会影响性能,这个殊效末了肯定会被卡去世,这个小技巧很多类似的殊效都会用到)。
至此核心的流程已经搞定,接下来,我们就要大量的天生雪花了。

天生500个雪花,不是同时天生的,然后把这些雪花保存到数组snow中.

然后,开启定时器,让雪花不断的飘落吧,

完全的demo代码:

作者:ghostwu, 出处:http://www.cnblogs.com/ghostwu

标签:

相关文章

介绍百度网盘,云端存储时代的创新先锋

随着互联网技术的飞速发展,云计算已经成为现代生活不可或缺的一部分。而在这其中,百度网盘作为国内领先的云存储服务提供商,以其卓越的性...

SEO优化 2025-01-03 阅读1 评论0

介绍监控屏蔽技术,守护个人隐私的利器

随着科技的发展,监控设备已经深入到我们生活的方方面面。在享受便利的隐私安全问题也日益凸显。如何有效屏蔽监控,保护个人隐私,成为人们...

SEO优化 2025-01-03 阅读1 评论0

介绍番号观看方法,轻松驾驭影视世界

随着互联网的普及,网络影视资源日益丰富,番号作为影视作品的标识码,已经成为广大观众了解、搜索和观看影视作品的重要途径。如何正确地使...

SEO优化 2025-01-03 阅读1 评论0

介绍盗微信号黑幕,网络安全的严峻挑战

在数字化时代,微信已成为人们生活中不可或缺的通讯工具。随着微信用户数量的激增,盗微信号的事件也日益增多。本文将深入剖析盗微信号的方...

SEO优化 2025-01-03 阅读1 评论0