【移动应用开发技术】HTML5实现下雪实例_第1页
【移动应用开发技术】HTML5实现下雪实例_第2页
【移动应用开发技术】HTML5实现下雪实例_第3页
【移动应用开发技术】HTML5实现下雪实例_第4页
免费预览已结束,剩余1页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】HTML5实现下雪实例

下雪实例知识点:canvas画布数组绘画函数

效果:源码:<!doctype

html>

<html

lang="en">

<head>

<meta

charset="UTF-8">

<meta

name="Generator"

content="">

<meta

name="Author"

content="">

<meta

name="Keywords"

content="">

<meta

name="Description"

content="">

<title>下雪</title>

<style>

*{padding:0;margin:0}

html{overflow:hidden}

</style>

</head>

<body>

<canvas

id="canvas"

></canvas>

<audio

src="/Files/DownLoad/sound1/201210/2178.mp3"

autoplay

loop/>

<audio

src="/Files/DownLoad/sound1/201205/1430.mp3"

autoplay

loop/>

<script

type="text/javascript">

window.onload

=

function(){

//获取画布对象

var

canvas

=

document.getElementById("canvas");

//获取画布的上下文

var

context

=canvas.getContext("2d");

//获取浏览器屏幕的宽度和高度

var

w

=

window.innerWidth;

var

h

=

window.innerHeight;

//设置canvas的宽度和高度

canvas.width

=

w;

canvas.height

=

h;

//1:如何产生雪花,一个圆

,arc(x,y,r,start,end)

//初始化雪花数量

var

num

=

200;

//雪花数组

var

snows

=

[];

for(var

i=0;i<num;i++){

//x,y圆心掉的坐标位置,r代表圆的半径,d每个圆的每个圆之间的间距,c代表的颜色

var

r

=

randColor();

snows.push({

x:Math.random()*w,

y:Math.random()*h,

r:Math.random()*10,

d:Math.random()*num

});

};

//绘画的函数

function

draw(){

context.clearRect(0,0,w,h);

context.beginPath();

for(var

i=0;i<num;i++){

var

snow

=

snows[i];

context.fillStyle

=

"rgba(255,255,255,0.9)";

context.moveTo(snow.x,snow.y);

context.arc(snow.x,snow.y,snow.r,0,Math.PI*2);

}

context.fill();

//掉落

drop();

};

var

angle

=

0;

function

drop()

{

angle

+=

0.01;

for(var

i

=

0;

i

<

num;

i++){

var

p

=

snows[i];

//记住两个公式:Math.sin(弧度)返回是一个0

1

-1

的数字

//math.cos(1

0

-1

)

自由体,

p.y

+=

Math.cos(angle+p.d)

+

1

+

p.r*0.625;

p.x

+=

Math.sin(angle)

*

8

;

//如果雪花到了边界,进行边界处理

if(p.x

>

w+5

||

p.x

<

-5

||

p.y

>

h){

if(i%4

>

0)

{

snows[i]

=

{x:

Math.random()*w,

y:

-10,

r:

p.r,

d:

p.d};

}else{

//控制方向

if(Math.sin(angle)

>

0){

snows[i]

=

{x:

-5,

y:

Math.random()*h,

r:

p.r,

d:

p.d};

}else{

snows[i]

=

{x:

w+5,

y:

Math.random()*h,

r:

p.r,

d:

p.d};

}

}

}

}

};

//执行和调用函数

draw();

setInterval(draw,10);

//随机颜色

function

randColor(){

var

r

=

Math.floor(Math.random()

*

256);

var

g

=

Math.floor(Math.random()

*

256)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论