学着做的第一个小游戏 flappyBrid 飞翔的小鸟 有图片资源

<!DOCTYPE html>
<html>
<head>
	<title>飞鸟</title>
	<style type="text/css">
	/* 不同内核*/
		@-webkit-keyframes fly{
			0%{
				transform: translate3d(0,0,0); 
				-o-transform: translate3d(0,0,0); 
				-ms-transform: translate3d(0,0,0);
				-moz-transform: translate3d(0,0,0);
				-webkit-transform: translate3d(0,0,0); 
			}
			100%{
				transform: translate3d(0,30px,0); 
				-o-transform: translate3d(0,30px,0); 
				-ms-transform: translate3d(0,30px,0); 
				-moz-transform: translate3d(0,30px,0);
				-webkit-transform: translate3d(0,30px,0); 
			}
		}

		@keyframes fly{
			0%{
				transform: translate3d(0,0,0); 
				-o-transform: translate3d(0,0,0); 
				-ms-transform: translate3d(0,0,0); 
				-moz-transform: translate3d(0,0,0); 
				-webkit-transform: translate3d(0,0,0); 
			}
			100%{
				transform: translate3d(0,30px,0); 
				-o-transform: translate3d(0,30px,0); 
				-ms-transform: translate3d(0,30px,0);
				-moz-transform: translate3d(0,30px,0); 
				-webkit-transform: translate3d(0,30px,0); 
			}
		}

		@keyframes birdMove{
			0%{
				background: url("./img/bird2_2.png");
			}
			50%{
				background: url("./img/bird2_1.png");
			}
			100%{
				background: url("./img/bird2_0.png");
			}
		}
		@keyframes banner{
			0%{
				transform: translate3d(0,0,0); 
				-o-transform: translate3d(0,0,0); 
				-ms-transform: translate3d(0,0,0);
				-moz-transform: translate3d(0,0,0); 
				-webkit-transform: translate3d(0,0,0); 
			}
			100%{
				transform: translate3d(-288px,0,0); 
				-o-transform: translate3d(-288px,0,0); 
				-ms-transform: translate3d(-288px,0,0); 
				-moz-transform: translate3d(-288px,0,0); 
				-webkit-transform: translate3d(-288px,0,0); 
			}
		}

		#wrap{
			width: 288px;
			height: 512px;
			background: url("./img/bg_day.png");
			margin:0 auto;
			overflow: hidden;
			position: relative;
		}
		#beginScore{
			width: 24px;
			height: 44px;
			background: url("./img/0.png");
			margin: 35px auto;
		}
		#title {
			width: 178px;
			height: 48px;
			margin: 0 auto;
			position: relative;

			
			-o-animation: fly 1s infinite alternate; 
			-ms-animation: fly 1s infinite alternate;
			-moz-animation: fly 1s infinite alternate;
			-webkit-animation: fly 1s infinite alternate;
			
		}
		#beginBird{
			width: 34px;
			height: 25px;
			background: url("./img/bird2_2.png");
			position: absolute;
			left: 50%;
			transform: translate3d(-50%,0,0);

			animation: birdMove 1s infinite alternate;
			-o-animation: birdMove 1s infinite alternate;		
			-ms-animation: birdMove 1s infinite alternate;
			-moz-animation: birdMove 1s infinite alternate;		
			-webkit-animation: birdMove 1s infinite alternate;
			 
		}
		#beginBtn{
			width: 116px;
			height: 70px;
			background: url("./img/button_play.png");
			position: absolute;
			left: 50%;
			transform: translate3d(-50%,0,0);
			top: 320px;
		}
		#banner{
			background: url("./img/land.png");
			width: 576px;
			height: 90px;
			position: absolute;
			bottom: 0px;

			animation: banner 3s linear infinite ;
			-webkit-animation: banner 3s linear  infinite ;
		}
		#bird{
			width: 33px;
			height: 25px;
			/*background: url("./img/bird2_0.png");*/
			position: absolute;
			left: 30px;
			top: 200px;
			display: none;
		}
		.birdup{
			background: url("./img/bird2_1.png");
		}
		.birddown{
			background: url("./img/bird2_2.png");
		}

		.duct {
			width: 52px;
			height: 422px;
			overflow: hidden;
			/*border: 1px solid black;*/
			position: absolute;
			left: 288px;	
			
		}
		.upduct{
			width: 62px;
			height: 320px;
			background: url("./img/pipe_up.png") no-repeat;
			position: absolute;
			bottom: -100px;
		}
		.downduct{
			width: 62px;
			height: 320px;
			background: url("./img/pipe_down.png") no-repeat;
			position: absolute;
			/*图片有320高  320 - top 就是露出来的高度*/
			top: -200px;

		}
		#gameover{
			width: 204px;
			height: 54px;
			background: url("./img/text_game_over.png");
			position: absolute;
			top: 100px;
			left: 50%;
			transform: translate3d(-50%,0,0);
			display: none;
			z-index: 5;
		}
		#again{
			width: 80px;
			height: 28px;
			background: url("./img/button_ok.png");
			position: absolute;
			top: 180px;
			left: 50%;
			transform: translate3d(-50%,0,0);
			display: none;
			z-index: 5;
		}
	</style>
</head>
<body>
	<div id="wrap">
		<div id="beginScore"></div>
		<div id="title">
			<img src="./img/title.png"><div id="beginBird"></div>
		</div>
		<div id="beginBtn"></div>
		<div id="banner"></div>

		<div id="bird"></div>
		<div id="gameover"></div>
		<div id="again"></div>

	</div>


	<script type="text/javascript">
		var wrap = document.getElementById('wrap');
		var beginBtn = document.getElementById('beginBtn');
		var beginScore = document.getElementById('beginScore');
		var title = document.getElementById('title');
		var bird = document.getElementById('bird');
		var gameoverimg = document.getElementById('gameover');
		var okbutton = document.getElementById('again');
		
		var y = 2;

		gameBegin();
		tapWrap();
		
		function gameBegin() {
			beginBtn.onclick = function () {
				beginScore.style.display = "none";
				title.style.display = "none";
				this.style.display = "none";
				bird.style.display = "block";

				birdMove(bird);
				creatDuct();
				
			}		
		}
		
		function birdMove(bird) {
			var offTop = bird.offsetTop;
			var timer = setInterval(function () {
				offTop += y;
				y+=0.5;
				if (y > 6) {
					y = 6;
				}
				if (y < 0) {
					bird.className = "birdup";
				}
				else{
					bird.className = "birddown";
				}

				// 判断 小鸟是否落地
				if (offTop >= 512-25-90 ) {
					offTop = 512-25-90;
					clearInterval(timer);
					gameover();
				}
				bird.style.top = offTop +'px';
			},30)
		}

		function tapWrap() {
			wrap.onclick = function () {
				y =-7;
			}
		}
		//获得随机的 值
		function random(min,max) {
			return parseInt(Math.random() * (max - min)+ (min + 1));
		}

		function creatDuct() {
			//每隔   创建一组管道
			var timer = setInterval(function () {
				// 
				var duct = document.createElement("div");
				duct.className = "duct";
				wrap.appendChild(duct);

				var upduct =  document.createElement("div");//添加向上开口的水管
				upduct.className = "upduct";
				upduct.style.bottom = random(-260,-60) + "px";//设置bottom 设置随机范围是-260 到 -60
				duct.appendChild(upduct);

				var downduct =  document.createElement("div");//添加向下开口的水管
				downduct.className = "downduct";

				var upductBot = getComputedStyle(upduct).bottom; //获取bottom的值
				upductBot = Number(upductBot.replace('px','')); // 转换为数字
				downduct.style.top = -318 - upductBot   + "px"; // 根据bottom设置top
				duct.appendChild(downduct);

				ductMove(duct,upduct,downduct,timer);
				


			},2000); 
		}
		function ductMove(duct,upduct,downduct,timer) {
			var birdLeft = bird.offsetLeft;  //30
			var birdRight = bird.offsetLeft + bird.offsetWidth; //30+48
			
		        var offLeft = duct.offsetLeft;
		        var timer2 = setInterval(function () {
				offLeft -= 1;
				duct.style.left = offLeft + "px";
				//移除 水管
				if (duct.offsetLeft + duct.offsetWidth <=0) {
					
					duct.remove();
					
				}
				
				if (duct.offsetLeft < birdRight && (duct.offsetLeft + duct.offsetWidth) > birdLeft)  {			
					 if ( bird.offsetTop < (downduct.offsetTop + downduct.offsetHeight) || bird.offsetTop + bird.offsetHeight > upduct.offsetTop) {
					 	gameover(timer,timer2);
					 	alert("你挂了");
					 }
				}
				duct.move =timer2;
				//(duct.offsetLeft < birdRight && (duct.offsetLeft + duct.offsetWidth) > birdLeft && bird.offsetTop > (downduct.offsetTop + downduct.offsetHeight) && bird.offsetTop + bird.offsetHeight < upduct.offsetTop)
			},13);
		}
		function gameover(timer,timer2) {
			
				gameoverimg.style.display = "block";
				okbutton.style.display = "block";
				again();
				clearInterval(timer2);
				clearInterval(timer);

		}
		function again() {
			okbutton.onclick = function () {
				window.location.reload();
				
			}
		}
		
	</script>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/q970654226/article/details/80263103
今日推荐