JS(JavaScript)實戰 --會飛的小鳥

JS實戰

####大三剛開學 這學期課比較少 因此準備好好學習 --前端。之前大一時簡單瞭解一些HTML+CSS,暑假複習了那些內容,寫了幾個簡單的靜態頁面,現在正式學習JavaScript。

我的學習步驟大概是:

  1. 靜態頁面
  2. JS 動態交互頁面
  3. 框架學習 Rect 框架 與 Vue 框架 ,學習其中一個

後面的全棧開發就不學了 哈哈 自已自學 感覺那些會太難
開學一週了,今天總結一下每週收穫,分享一些代碼!
1. 會飛的小鳥
這是運行截圖B站網課鏈接 點這裏

下面這幾張圖片 請放到 pic文件夾下 並於 html 文件在同一個目錄下
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
	<title>會飛的小鳥</title>
	<style>
		body
		{
			background-color:#777;
			width:100%;
			height:500px;
		}
		canvas
		{
			position:absolute;
			top:100px;
			left:18%;
			border-radius:10px;
			background-color:#fff;
		}
		#mark
		{
			/*display:flex;*/
			position:absolute;
			top:20px;
			left:1000px;
			/*width:200px;*/
			height:30px;
			font-size:14px;
			/*background-color:#fff;*/
			/*text-align:center;*/
			/*line-height:30px;*/
		}
		#res
		{
			position:absolute;
			width:150px;
			height:150px;
			top:230px;
			left:41%;
			border-radius:50%;
			background-color:rgba(20,20,20,0.5);
			text-align:center;
			display:none;
		}
		#res h2
		{
			font-size:12px;
			margin:30px auto;
			font-weight:400;
		}
		#res img
		{
			width:40px;
			height:40px;
			border-radius:50%;
		}
	</style>
</head>
<body>
	<canvas id="canvas" width="800" height="400"></canvas>
	<div class="mark" id="mark"></div>
	<div class="res" id="res">
		<h2>得分:100</h2>
		<img src="pic/g.jpg" alt="" />
	</div>
	<script>
		var canvas=document.getElementById("canvas");
		var context=canvas.getContext("2d");
		var img=new Image();
		img.src="pic/s.jpg";
		var birdTimer=null;
		var birdX=200;
		var birdY=100;
		img.onload=function()
		{
			if(birdTimer==null)
			{
				birdTimer=setInterval(function()
				{
				if (birdY<=355)
				{
					birdY++
				}
				context.clearRect(0,0,800,400);
				context.drawImage(img,birdX,birdY,30,30);
				drawColumn();
				},20);
			}
		}
		document.onmousedown=function()
		{
			img.src="pic/x.jpg";
			birdY=birdY-40;
		}
		document.onmouseup=function()
		{
			img.src="pic/s.jpg";
			// birdY=birdY-30;
		}
		var columeArr=[];
		var columeTimer=null;
		function creatColumn()
		{
			columeTimer=setInterval(function(){
			var colume={};//柱子容器
			colume.positionX=800;
			colume.positionY=-Math.round(Math.random()*100+100);
			colume.imgA=new Image();
			colume.imgB=new Image();
			colume.imgA.src="pic/xz.png";
			colume.imgB.src="pic/sz.png";
			colume.id = new Date().getTime();
			columeArr.push(colume);
			// console.log(colume.id);
			},3000);
			console.log(columeArr);
		}
		creatColumn();
		var same=null;
		var mark=0;
		function drawColumn()
		{
			for(var i=0;i<columeArr.length;i++)
			{
				columeArr[i].positionX--;
				context.drawImage(columeArr[i].imgA,columeArr[i].positionX,columeArr[i].positionY);
		context.drawImage(columeArr[i].imgB,columeArr[i].positionX,columeArr[i].positionY+380);
				if(birdX+30>=columeArr[i].positionX && birdX-70<=columeArr[i].positionX)
				{
					//加分;
					if(columeArr[i].id!=same)
					{
						mark++;
						same=columeArr[i].id;
						// console.log(same);
						document.getElementById("mark").innerHTML="得分:"+mark;
					}
					if(birdY<=columeArr[i].positionY+250||birdY+30>=columeArr[i].positionY+380)
					{
						clearInterval(columeTimer);
						clearInterval(birdTimer);
						var ors=document.getElementById("res");
						ors.style.display="block";
						ors.children[0].innerHTML="得分:"+mark;
							if(mark>=0&&mark<=10)
							{
								ors.children[1].src="pic/b.png";
							}
							if(mark>10&&mark<=20)
							{
								ors.children[1].src="pic/silver.jpg";
							}
							if(mark>20)
							{
								ors.children[1].src="pic/g.jpg";
							}
							setTimeout(function(){
								ors.children[0].innerHTML="遊戲即將重新開始3s";
								ors.children[1].src="";
								setTimeout(function(){
									window.location.reload();
								},3000);
							},3000);		
					}
				}
			}
		}

	</script>
</body>
</html>

網課鏈接:https://www.bilibili.com/video/av45705742/?p=201

加油!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章