-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsnow.js
81 lines (71 loc) · 2.1 KB
/
snow.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
function snowFlake(x,y,r,d){
this.x=x;
this.y=y;
this.r=r;
this.d=d;
}
window.onload = function(){
// get canvas
var canvas = document.getElementById("sky");
var ctx = canvas.getContext("2d");
// set w and h to window h and window w
var w = window.innerWidth;
var h = window.innerHeight;
canvas.width = w;
canvas.height = h;
// tạo ra một mảng gồm những bông tuyết và số lượng lớn nhất của nó
var max=100;
var snowFlakes=[];
for(var i=0;i<max;i++){
var s = new snowFlake(
Math.random()*w,
Math.random()*h,
Math.random()*5+2,// ban kinh
Math.random()+1 //destination
);
snowFlakes.push(s);
}
function draw(){
ctx.clearRect(0,0,w,h);
ctx.fillStyle="white";
ctx.beginPath();
for(var i = 0;i < max;i++){
var f = snowFlakes[i];
ctx.moveTo(f.x,f.y);
ctx.arc(f.x, f.y, f.r, 0, 2 * Math.PI, true);
}
ctx.fill();
moveSnowFlakes();
ctx.font = "50px Verdana";
var gradient = ctx.createLinearGradient(0, 0, canvas.width, 0);
gradient.addColorStop("0", "white");
gradient.addColorStop("0.5", "yellow");
gradient.addColorStop("1.0", "red");
ctx.fillStyle = gradient;
ctx.fillText("2019", 550, 90);
}
// animate the falkes
var angle = 0;
function moveSnowFlakes(){
angle += 0.01;
for(var i = 0;i < max;i++){
var f = snowFlakes[i];
//thay doi x va y de tao hieu ung chuyen dong
f.y += Math.pow(f.d,2)+1;
f.x += Math.sin(angle)*2;
// nêu cầu tuyết chạm tới đáy thì lại cho một đợi mới rơi xuống
if(f.y>h){
snowFlakes[i] = new snowFlake(
Math.random()*w,
Math.random()*h,
Math.random()*5+2,// ban kinh
Math.random()+1 //destination
);
}
}
}
setInterval(draw,50);
}
var audio=new Audio();
audio.src="./chieckhangioam.mp3";
audio.play();