日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

代码制作数字流星雨_js代码实现流星雨

發布時間:2023/12/31 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 代码制作数字流星雨_js代码实现流星雨 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一起來看流星雨

var context;

var arr = new Array();

var starCount = 800;

var rains = new Array();

var rainCount =20;

//初始化畫布及context

function init(){

//獲取canvas

var stars = document.getElementById("stars");

windowWidth = window.innerWidth; //當前的窗口的高度

stars.width=windowWidth;

stars.height=window.innerHeight;

//獲取context

context = stars.getContext("2d");

}

//創建一個星星對象

var Star = function (){

this.x = windowWidth * Math.random();//橫坐標

this.y = 5000 * Math.random();//縱坐標

this.text=".";//文本

this.color = "white";//顏色

//產生隨機顏色

this.getColor=function(){

var _r = Math.random();

if(_r<0.5){

this.color = "#333";

}else{

this.color = "white";

}

}

//初始化

this.init=function(){

this.getColor();

}

//繪制

this.draw=function(){

context.fillStyle=this.color;

context.fillText(this.text,this.x,this.y);

}

}

//畫月亮

function drawMoon(){

var moon = new Image();

moon.src = "./images/moon.jpg"

context.drawImage(moon,-5,-10);

}

//頁面加載的時候

window.onload = function() {

init();

//畫星星

for (var i=0;i

var star = new Star();

star.init();

star.draw();

arr.push(star);

}

//畫流星

for (var i=0;i

var rain = new MeteorRain();

rain.init();

rain.draw();

rains.push(rain);

}

drawMoon();//繪制月亮

playStars();//繪制閃動的星星

playRains();//繪制流星

}

//星星閃起來

function playStars(){

for (var n = 0; n < starCount; n++){

arr[n].getColor();

arr[n].draw();

}

setTimeout("playStars()",100);

}

/*流星雨開始*/

var MeteorRain = function(){

this.x = -1;

this.y = -1;

this.length = -1;//長度

this.angle = 30; //傾斜角度

this.width = -1;//寬度

this.height = -1;//高度

this.speed = 1;//速度

this.offset_x = -1;//橫軸移動偏移量

this.offset_y = -1;//縱軸移動偏移量

this.alpha = 1; //透明度

this.color1 = "";//流星的色彩

this.color2 = ""; //流星的色彩

/****************初始化函數********************/

this.init = function () //初始化

{

this.getPos();

this.alpha = 1;//透明度

this.getRandomColor();

//最小長度,最大長度

var x = Math.random() * 80 + 150;

this.length = Math.ceil(x);

// x = Math.random()*10+30;

this.angle = 30; //流星傾斜角

x = Math.random()+0.5;

this.speed = Math.ceil(x); //流星的速度

var cos = Math.cos(this.angle*3.14/180);

var sin = Math.sin(this.angle*3.14/180) ;

this.width = this.length*cos ; //流星所占寬度

this.height = this.length*sin ;//流星所占高度

this.offset_x = this.speed*cos ;

this.offset_y = this.speed*sin;

}

/**************獲取隨機顏色函數*****************/

this.getRandomColor = function (){

var a = Math.ceil(255-240* Math.random());

//中段顏色

this.color1 = "rgba("+a+","+a+","+a+",1)";

//結束顏色

this.color2 = "black";

}

/***************重新計算流星坐標的函數******************/

this.countPos = function ()//

{

//往左下移動,x減少,y增加

this.x = this.x - this.offset_x;

this.y = this.y + this.offset_y;

}

/*****************獲取隨機坐標的函數*****************/

this.getPos = function () //

{

//橫坐標200--1200

this.x = Math.random() * window.innerWidth; //窗口高度

//縱坐標小于600

this.y = Math.random() * window.innerHeight; //窗口寬度

}

/****繪制流星***************************/

this.draw = function () //繪制一個流星的函數

{

context.save();

context.beginPath();

context.lineWidth = 1; //寬度

context.globalAlpha = this.alpha; //設置透明度

//創建橫向漸變顏色,起點坐標至終點坐標

var line = context.createLinearGradient(this.x, this.y,

this.x + this.width,

this.y - this.height);

//分段設置顏色

line.addColorStop(0, "white");

line.addColorStop(0.3, this.color1);

line.addColorStop(0.6, this.color2);

context.strokeStyle = line;

//起點

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

//終點

context.lineTo(this.x + this.width, this.y - this.height);

context.closePath();

context.stroke();

context.restore();

}

this.move = function(){

//清空流星像素

var x = this.x+this.width-this.offset_x;

var y = this.y-this.height;

context.clearRect(x-3,y-3,this.offset_x+5,this.offset_y+5);

// context.strokeStyle="red";

// context.strokeRect(x,y-1,this.offset_x+1,this.offset_y+1);

//重新計算位置,往左下移動

this.countPos();

//透明度增加

this.alpha -= 0.002;

//重繪

this.draw();

}

}

//繪制流星

function playRains(){

for (var n = 0; n < rainCount; n++){

var rain = rains[n];

rain.move();//移動

if(rain.y>window.innerHeight){//超出界限后重來

context.clearRect(rain.x,rain.y-rain.height,rain.width,rain.height);

rains[n] = new MeteorRain();

rains[n].init();

}

}

setTimeout("playRains()",2);

}

/*流星雨結束*/

body{

background-color: black;

}

body,html{width:100%;height:100%;overflow:hidden;}

總結

以上是生活随笔為你收集整理的代码制作数字流星雨_js代码实现流星雨的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品12区 | 欧美自拍视频 | 亚洲av无码乱码在线观看富二代 | 国产无遮挡裸体免费视频 | 91玉足脚交白嫩脚丫 | 日本一本高清视频 | 91久久精品一区二区 | 97精品一区| 饥渴丰满的少妇喷潮 | 欧美日韩国产一区在线 | 激情成人综合网 | 中文字幕乱码亚洲精品一区 | 久久精品一区二区在线观看 | 超碰伊人| 中文字幕在线播放一区 | 日本激情一区二区三区 | 精品久久综合 | 夜夜骚av一区二区三区 | fc2ppv在线观看 | 日韩欧美亚 | 97se在线视频 | 调教一区二区 | 婷婷国产成人精品视频 | 亚洲欧洲一级 | 一区二区日韩在线观看 | 男人的天堂视频网站 | www.精品视频| 日韩va视频 | 69天堂网| 亚洲一级成人 | 18岁免费观看电视连续剧 | 性开放的欧美大片 | 日欧视频 | 久久在线精品 | 日本学生初尝黑人巨免费视频 | 欧美色视频在线观看 | 谁有毛片网站 | 国产无套免费网站69 | 又黄又爽在线观看 | 午夜精品视频一区二区三区在线看 | 欧美无吗| 欧美gv在线 | 一级片免费 | 福利视频在线播放 | 国产乱人伦精品 | 天天天天天天天干 | 激情欧美网站 | 色哟哟精品一区 | 69av导航| 亚洲一区精品视频在线观看 | 91天堂网 | 丝袜亚洲综合 | 国内精品视频 | 亚洲国产无码精品 | 99热这里只有精品5 国产精品伦子伦免费视频 精品一二三 | 亚洲国产精品va在线看黑人 | 538精品在线视频 | 欧美乱码精品一区二区 | 极品色av | 成人特级毛片 | 欧美黄色录像片 | 亚洲尻逼| 最新国产精品 | 黄视频免费在线观看 | 天天色综合天天 | 久久人人视频 | 国语对白在线观看 | 污污污www精品国产网站 | 黄色com| 国产新婚疯狂做爰视频 | k8yy毛片| 国产二区视频在线观看 | 夜夜小视频 | 日韩av无码久久 | 少妇久久久| 制服诱惑一区 | 国产精品19p| 日韩av中文字幕在线免费观看 | 天天操天天看 | 久久一区二区电影 | 婷婷色亚洲 | 日本一区二区在线播放 | 午夜av中文字幕 | xxxxwwww国产 | 香蕉色网 | 国产美女主播在线 | 五月天婷婷基地 | 精品国产一区二区在线观看 | 久久亚洲精选 | 无码视频一区二区三区 | 精品日韩在线观看 | 一级黄色录像大片 | 一区二区三区欧美精品 | 欧美性jizz18性欧美 | www.爱爱.com | 国产视频三区 | 午夜av不卡 | 久操社区| а√天堂8资源中文在线 |