zoukankan      html  css  js  c++  java
  • 23、svn与打飞机

    svn与git
    image

    打飞机

    css
    *{margin:0; padding:0;}
    html,body{100%; height:100%; overflow: hidden;}
    .main{
    	margin: auto;
    	height: 100%;
    	background: url(images/bg.jpg) repeat-y;
    	background-position-y: 0px;
    	 480px;
    }
    .options{
    	position: absolute;
    	list-style: none;
    	margin: auto;
    	left: 0; right: 0; top: 100px; 
    	 200px;
    	height: 300px;
    	
    }
    .options li{
    	border-radius: 5px;
    	box-shadow: 0 0 2px 1px black;
    	float: left;
    	 200px;
    	height: 75px;
    	text-align: center;
    	line-height: 75px;
    	margin-bottom: 20px;
    	background: #f40;
    	color: white;
    	font: "微软雅黑";
    	font-size: 28px;
    	cursor: pointer;
    }
    .logo{
    	position: absolute;
    	left: 0; right: 0; top: 25%; 
    	margin: auto;
    	 428px; height: 104px;
    	background: url(images/logo.png) no-repeat;	
    }
    .loading{
    	position: absolute;
    	left: 0; right: 0; top: 60%;
    	margin: auto;
    	 192px; height: 41px;
    	background: url(images/loading1.png) no-repeat;
    }
    .my-warplain{
    	position: absolute;
    	 98px; height: 122px;
    	background: url(images/me.png) no-repeat;
    	cursor: none;
    }
    .bullet{
    	position: absolute;
    	 7px; height: 18px;
    	background: url(images/bullet.png) no-repeat;
    }
    .bullet_die{
    	position: absolute;
    	 41px; height: 39px;
    	background: url(images/die1.png) no-repeat;
    	margin-left: -18px;
    }
    .enemy-small{
    	position: absolute;
    	z-index: 1;
    	 59px; height: 36px;
    	background: url(images/plane1.png) no-repeat;
    }
    .enemy-middle{
    	position: absolute;
    	 70px; height: 92px;
    	background: url(images/plane2.png) no-repeat;
    }
    .enemy-large{
    	position: absolute;
    	165px; height: 256px;
    	background: url(images/plane3.png) no-repeat;
    }
    
    
    一.ES5:
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>Document</title>
    	<link rel="stylesheet" href="dahuiji.css" />
    	<script type="text/javascript">
    		window.onload = function(){
    			new Engine();
    		}
    		//引擎
    		function Engine(){
    			//属性
    			this.ele = document.getElementById("body_main");//获取引擎
    			//获取li
    			this.oUllis = this.ele.children[0].children;
    			//记录this
    			var that = this;
    			//遍历li,添加事件
    			for(var i = 0,len = this.oUllis.length;i < len;i ++){
    				//记录下标
    				this.oUllis[i].index = i;
    				//添加点击事件
    				this.oUllis[i].onclick = function(){
    					//删除ul选项
    					this.parentNode.remove();
    					//调用加载页面的方法
    					that.loadPage();
    					that.frequency = this.index;
    				}
    			}
    		}
    		//原型方法
    		Engine.prototype.loadPage = function(){
    			//创建logo
    			var logo = $create('div','logo');
    			//加到页面
    			$addBody(logo);
    			//创建loading
    			var loading = $create('div','loading');
    			//加到页面
    			$addBody(loading);
    			//设置loading动画
    			var index = 1;
    			var timer = setInterval(function(){
    				loading.style.background = 'url(images/loading' + (index ++ % 3 + 1) + '.png) no-repeat';
    			},500);
    			//设置背景动画
    			var that = this;
    			var positionY = 1;
    			setInterval(function(){
    				that.ele.style.backgroundPositionY = ++ positionY + 'px';
    			},30)
    			//3秒到达战场
    			setTimeout(function(){
    				//清场
    				//删除logo
    				logo.remove();
    				//删除loading
    				loading.remove();
    				//停止loading动画
    				clearInterval(timer);
    				//开始游戏
    				that.gameStart();
    			},3000)
    		}
    		Engine.prototype.gameStart = function(){
    			//我方飞机入场
    			Plane.init();
    			//我方飞机开火
    			Plane.fire(this.frequency);
    			//创建敌机
    			this.createEnemy();
    		}
    		Engine.prototype.createEnemy = function(){
    			//设置敌机的类型和产生的概率
    			//敌小机
    			setInterval(function(){
    				Math.random() > 0.5 ? new Enemy(0) : "";
    			},500)
    			//敌中机
    			setInterval(function(){
    				Math.random() > 0.5 ? new Enemy(1) : "";
    			},1000)
    			//敌大机
    			setInterval(function(){
    				Math.random() > 0.2 ? new Enemy(2) : "";
    			},8000)
    		}
    		//我方飞机
    		var Plane = {
    			//创建我方飞机
    			ele : $create('div','my-warplain'),
    			//初始化我方飞机
    			init : function(){
    				//放到页面
    				$addBody(this.ele);
    				//我方飞机定位
    				this.ele.style.left = document.documentElement.clientWidth / 2 - this.ele.offsetWidth / 2 + 'px';
    				this.ele.style.top = document.documentElement.clientHeight - this.ele.offsetHeight + 'px';
    				//调用我方飞机运动
    				this.fly();
    			},
    			fly : function(){
    				var that = this;
    				//获取引擎div
    				var bodyMain = document.getElementById("body_main");
    				//鼠标跟随
    				document.onmousemove = function(evt){
    					var e = evt || window.event;
    					//设置边界
    					var left = e.pageX - that.ele.offsetWidth / 2;
    					var top = e.pageY - that.ele.offsetHeight / 2;
    					if(left <= bodyMain.offsetLeft){
    						left = bodyMain.offsetLeft;
    					}
    					if(left >= bodyMain.offsetLeft + bodyMain.offsetWidth - that.ele.offsetWidth){
    						left = bodyMain.offsetLeft + bodyMain.offsetWidth - that.ele.offsetWidth;
    					}
    					that.ele.style.left = left + 'px';
    					that.ele.style.top = top + 'px';
    				}
    			},
    			fire : function(frequency){
    				var frequencyMe = 200; //默认的开火频率
    				switch(frequency){
    					case 0 : frequencyMe = 500;break;
    					case 1 : frequencyMe = 400;break;
    					case 2 : frequencyMe = 200;break;
    					case 3 : frequencyMe = 50;break;
    				}
    				
    				//设置子弹ID
    				var bulletId = 0;
    				var that = this;
    				setInterval(function(){
    					that.bullet.push(new Bullet(bulletId));
    					bulletId ++;
    					console.log(that.bullet);
    				},frequencyMe)
    			},
    			bullet : []
    		}
    		
    		//子弹
    		function Bullet(id){
    			this.id = id;
    			//创建子弹
    			this.ele = $create('div','bullet');
    			//初始化
    			this.init();
    		}
    		Bullet.prototype.init = function(){
    			//加到页面
    			$addBody(this.ele);
    			//给子弹添加id
    			this.ele.id = this.id;
    			//定位子弹
    			this.ele.style.left = Plane.ele.offsetLeft + Plane.ele.offsetWidth / 2 - this.ele.offsetWidth / 2 + 'px';
    			this.ele.style.top = Plane.ele.offsetTop - this.ele.offsetHeight + 'px';
    			//让子弹飞
    			this.fly();
    		}
    		Bullet.prototype.fly = function(){
    			var that = this;
    			this.timer = setInterval(function(){
    				that.ele.style.top = that.ele.offsetTop - 15 + 'px';
    				if(that.ele.offsetTop <= 10){
    					that.boom(); //子弹爆炸
    				}
    			},30)
    		}
    		Bullet.prototype.boom = function(){
    			this.ele.className = 'bullet_die';
    			clearInterval(this.timer);
    			var that = this;
    			setTimeout(function(){
    				that.ele.remove();
    				for(var i = 0,len = Plane.bullet.length;i < len;i ++){
    					if(that.ele.id == Plane.bullet[i].id){
    						Plane.bullet.splice(i,1);
    					}
    				}
    			},100)
    		}
    		
    		//敌机
    		function Enemy(type){
    			this.type = type;
    			this.init();
    		}
    		Enemy.prototype.init = function(){
    			switch(this.type){
    				case 0 : this.ele = $create('div','enemy-small');this.hp = 1;this.speed = 10;break;
    				case 1 : this.ele = $create('div','enemy-middle');this.hp = 5;this.speed = 8;break;
    				case 2 : this.ele = $create('div','enemy-large');this.hp = 50;this.speed = 2;break;
    			}
    			//加到页面
    			$addBody(this.ele);
    			//定位敌机
    			this.position();
    		}
    		Enemy.prototype.position = function(){
    			var bodyMain = document.getElementById("body_main");
    			this.ele.style.left = $random(bodyMain.offsetLeft,bodyMain.offsetLeft + bodyMain.offsetWidth - this.ele.offsetWidth) + 'px';
    			this.ele.style.top = - this.ele.offsetHeight + 'px';
    			//敌机起飞
    			this.fly();
    		}
    		Enemy.prototype.fly = function(){
    			var that = this;
    			this.timer = setInterval(function(){
    				that.ele.style.top = that.ele.offsetTop + that.speed + 'px';
    				//碰撞检测
    				that.collision();
    				if(that.ele.offsetTop >= document.documentElement.clientHeight){
    					that.ele.remove();
    					clearInterval(that.timer);
    				}
    			},30)
    		}
    		Enemy.prototype.collision = function(){
    			for(var i = 0;i < Plane.bullet.length;i ++){
    				if(!(this.ele.offsetTop + this.ele.offsetHeight < Plane.bullet[i].ele.offsetTop || Plane.bullet[i].ele.offsetTop + Plane.bullet[i].ele.offsetHeight < this.ele.offsetTop)){
    					if(!(Plane.bullet[i].ele.offsetLeft + Plane.bullet[i].ele.offsetWidth < this.ele.offsetLeft || this.ele.offsetLeft + this.ele.offsetWidth < Plane.bullet[i].ele.offsetLeft)){
    						Plane.bullet[i].boom();
    						this.hp --;
    						if(this.hp == 0){
    							this.ele.remove();
    							clearInterval(this.timer);
    						}
    					}
    					
    				}
    			}
    		}
    		//工具箱
    		//删除元素
    		Element.prototype.remove = function(){
    			this.parentNode.removeChild(this);
    		}
    		//创建对象并添加类名
    		function $create(tagName,className){
    			var ele = document.createElement(tagName);
    			ele.className = className;
    			return ele;
    		}
    		//将元素对象添加到页面中
    		function $addBody(obj){
    			document.body.appendChild(obj);
    		}
    		//随机整数
    		function $random(min,max){
    			return Math.floor(Math.random() * (max - min + 1) + min);
    		}
    	</script>
    </head>
    <body>
    	<div id="body_main" class="main">
    		<ul id="options" class="options">
    			<li value="1">超级困难</li>
    			<li value="2">非常困难</li>
    			<li value="3">比较困难</li>
    			<li value="4">就选我吧</li>
    		</ul>
    	</div>
    </body>
    </html>
    
    二.ES5原型对象:
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>Document</title>
    	<link rel="stylesheet" href="dahuiji.css" />
    	<script type="text/javascript">
    		window.onload = function(){
    			new Engine();
    		}
    		//引擎
    		function Engine(){
    			//属性
    			this.ele = document.getElementById("body_main");//获取引擎
    			//获取li
    			this.oUllis = this.ele.children[0].children;
    			//记录this
    			var that = this;
    			//遍历li,添加事件
    			for(var i = 0,len = this.oUllis.length;i < len;i ++){
    				//记录下标
    				this.oUllis[i].index = i;
    				//添加点击事件
    				this.oUllis[i].onclick = function(){
    					//删除ul选项
    					this.parentNode.remove();
    					//调用加载页面的方法
    					that.loadPage();
    					that.frequency = this.index;
    				}
    			}
    		}
    		//原型方法
    		Engine.prototype = {
    			loadPage : function(){
    				//创建logo
    				var logo = $create('div','logo');
    				//加到页面
    				$addBody(logo);
    				//创建loading
    				var loading = $create('div','loading');
    				//加到页面
    				$addBody(loading);
    				//设置loading动画
    				var index = 1;
    				var timer = setInterval(function(){
    					loading.style.background = 'url(images/loading' + (index ++ % 3 + 1) + '.png) no-repeat';
    				},500);
    				//设置背景动画
    				var that = this;
    				var positionY = 1;
    				setInterval(function(){
    					that.ele.style.backgroundPositionY = ++ positionY + 'px';
    				},30)
    				//3秒到达战场
    				setTimeout(function(){
    					//清场
    					//删除logo
    					logo.remove();
    					//删除loading
    					loading.remove();
    					//停止loading动画
    					clearInterval(timer);
    					//开始游戏
    					that.gameStart();
    				},3000)
    			},
    			gameStart : function(){
    				//我方飞机入场
    				Plane.init();
    				//我方飞机开火
    				Plane.fire(this.frequency);
    				//创建敌机
    				this.createEnemy();
    			},
    			createEnemy : function(){
    				//设置敌机的类型和产生的概率
    				//敌小机
    				setInterval(function(){
    					Math.random() > 0.5 ? new Enemy(0) : "";
    				},500)
    				//敌中机
    				setInterval(function(){
    					Math.random() > 0.5 ? new Enemy(1) : "";
    				},1000)
    				//敌大机
    				setInterval(function(){
    					Math.random() > 0.2 ? new Enemy(2) : "";
    				},8000)
    			}
    		};
    		//我方飞机
    		var Plane = {
    			//创建我方飞机
    			ele : $create('div','my-warplain'),
    			//初始化我方飞机
    			init : function(){
    				//放到页面
    				$addBody(this.ele);
    				//我方飞机定位
    				this.ele.style.left = document.documentElement.clientWidth / 2 - this.ele.offsetWidth / 2 + 'px';
    				this.ele.style.top = document.documentElement.clientHeight - this.ele.offsetHeight + 'px';
    				//调用我方飞机运动
    				this.fly();
    			},
    			fly : function(){
    				var that = this;
    				//获取引擎div
    				var bodyMain = document.getElementById("body_main");
    				//鼠标跟随
    				document.onmousemove = function(evt){
    					var e = evt || window.event;
    					//设置边界
    					var left = e.pageX - that.ele.offsetWidth / 2;
    					var top = e.pageY - that.ele.offsetHeight / 2;
    					if(left <= bodyMain.offsetLeft){
    						left = bodyMain.offsetLeft;
    					}
    					if(left >= bodyMain.offsetLeft + bodyMain.offsetWidth - that.ele.offsetWidth){
    						left = bodyMain.offsetLeft + bodyMain.offsetWidth - that.ele.offsetWidth;
    					}
    					that.ele.style.left = left + 'px';
    					that.ele.style.top = top + 'px';
    				}
    			},
    			fire : function(frequency){
    				var frequencyMe = 200; //默认的开火频率
    				switch(frequency){
    					case 0 : frequencyMe = 500;break;
    					case 1 : frequencyMe = 400;break;
    					case 2 : frequencyMe = 200;break;
    					case 3 : frequencyMe = 50;break;
    				}
    				
    				//设置子弹ID
    				var bulletId = 0;
    				var that = this;
    				setInterval(function(){
    					that.bullet.push(new Bullet(bulletId));
    					bulletId ++;
    					console.log(that.bullet);
    				},frequencyMe)
    			},
    			bullet : []
    		}
    		
    		//子弹
    		function Bullet(id){
    			this.id = id;
    			//创建子弹
    			this.ele = $create('div','bullet');
    			//初始化
    			this.init();
    		}
    		Bullet.prototype = {
    			init : function(){
    				//加到页面
    				$addBody(this.ele);
    				//给子弹添加id
    				this.ele.id = this.id;
    				//定位子弹
    				this.ele.style.left = Plane.ele.offsetLeft + Plane.ele.offsetWidth / 2 - this.ele.offsetWidth / 2 + 'px';
    				this.ele.style.top = Plane.ele.offsetTop - this.ele.offsetHeight + 'px';
    				//让子弹飞
    				this.fly();
    			},
    			fly : function(){
    				var that = this;
    				this.timer = setInterval(function(){
    					that.ele.style.top = that.ele.offsetTop - 15 + 'px';
    					if(that.ele.offsetTop <= 10){
    						that.boom(); //子弹爆炸
    					}
    				},30)
    			},
    			boom : function(){
    				this.ele.className = 'bullet_die';
    				clearInterval(this.timer);
    				var that = this;
    				setTimeout(function(){
    					that.ele.remove();
    					for(var i = 0,len = Plane.bullet.length;i < len;i ++){
    						if(that.ele.id == Plane.bullet[i].id){
    							Plane.bullet.splice(i,1);
    						}
    					}
    				},100)
    			}
    		};
    		
    		//敌机
    		function Enemy(type){
    			this.type = type;
    			this.init();
    		}
    		Enemy.prototype = {
    			init : function(){
    				switch(this.type){
    					case 0 : this.ele = $create('div','enemy-small');this.hp = 1;this.speed = 10;break;
    					case 1 : this.ele = $create('div','enemy-middle');this.hp = 5;this.speed = 8;break;
    					case 2 : this.ele = $create('div','enemy-large');this.hp = 50;this.speed = 2;break;
    				}
    				//加到页面
    				$addBody(this.ele);
    				//定位敌机
    				this.position();
    			},
    			position : function(){
    				var bodyMain = document.getElementById("body_main");
    				this.ele.style.left = $random(bodyMain.offsetLeft,bodyMain.offsetLeft + bodyMain.offsetWidth - this.ele.offsetWidth) + 'px';
    				this.ele.style.top = - this.ele.offsetHeight + 'px';
    				//敌机起飞
    				this.fly();
    			},
    			fly : function(){
    				var that = this;
    				this.timer = setInterval(function(){
    					that.ele.style.top = that.ele.offsetTop + that.speed + 'px';
    					//碰撞检测
    					that.collision();
    					if(that.ele.offsetTop >= document.documentElement.clientHeight){
    						that.ele.remove();
    						clearInterval(that.timer);
    					}
    				},30)
    			},
    			collision : function(){
    				for(var i = 0;i < Plane.bullet.length;i ++){
    					if(!(this.ele.offsetTop + this.ele.offsetHeight < Plane.bullet[i].ele.offsetTop || Plane.bullet[i].ele.offsetTop + Plane.bullet[i].ele.offsetHeight < this.ele.offsetTop)){
    						if(!(Plane.bullet[i].ele.offsetLeft + Plane.bullet[i].ele.offsetWidth < this.ele.offsetLeft || this.ele.offsetLeft + this.ele.offsetWidth < Plane.bullet[i].ele.offsetLeft)){
    							Plane.bullet[i].boom();
    							this.hp --;
    							if(this.hp == 0){
    								this.ele.remove();
    								clearInterval(this.timer);
    							}
    						}
    						
    					}
    				}
    			}
    		}
    		//工具箱
    		//删除元素
    		Element.prototype.remove = function(){
    			this.parentNode.removeChild(this);
    		}
    		//创建对象并添加类名
    		function $create(tagName,className){
    			var ele = document.createElement(tagName);
    			ele.className = className;
    			return ele;
    		}
    		//将元素对象添加到页面中
    		function $addBody(obj){
    			document.body.appendChild(obj);
    		}
    		//随机整数
    		function $random(min,max){
    			return Math.floor(Math.random() * (max - min + 1) + min);
    		}
    	</script>
    </head>
    <body>
    	<div id="body_main" class="main">
    		<ul id="options" class="options">
    			<li value="1">超级困难</li>
    			<li value="2">非常困难</li>
    			<li value="3">比较困难</li>
    			<li value="4">就选我吧</li>
    		</ul>
    	</div>
    </body>
    </html>
    
    三.ES6:
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>Document</title>
    	<link rel="stylesheet" href="dahuiji.css" />
    	<script type="text/javascript">
    		window.onload = function(){
    			new Engine();
    		}
    		//引擎
    		class Engine{
    			constructor(){
    				//属性
    				this.ele = document.getElementById("body_main");//获取引擎
    				//获取li
    				this.oUllis = this.ele.children[0].children;
    				//记录this
    				let that = this;
    				//遍历li,添加事件
    				for(let i = 0,len = this.oUllis.length;i < len;i ++){
    					//添加点击事件
    					this.oUllis[i].onclick = function(){
    						//删除ul选项
    						this.parentNode.remove();
    						//调用加载页面的方法
    						that.loadPage();
    						that.frequency = i;
    					}
    				}
    			}
    		//原型方法
    			loadPage(){
    				//创建logo
    				let logo = $create('div','logo');
    				//加到页面
    				$addBody(logo);
    				//创建loading
    				let loading = $create('div','loading');
    				//加到页面
    				$addBody(loading);
    				//设置loading动画
    				let index = 1;
    				let timer = setInterval(()=>{
    					loading.style.background = 'url(images/loading' + (index ++ % 3 + 1) + '.png) no-repeat';
    				},500);
    				//设置背景动画
    				let positionY = 1;
    				setInterval(()=>{
    					this.ele.style.backgroundPositionY = ++ positionY + 'px';
    				},30)
    				//3秒到达战场
    				setTimeout(()=>{
    					//清场
    					//删除logo
    					logo.remove();
    					//删除loading
    					loading.remove();
    					//停止loading动画
    					clearInterval(timer);
    					//开始游戏
    					this.gameStart();
    				},3000)
    			}
    			gameStart(){
    				//我方飞机入场
    				Plane.init();
    				//我方飞机开火
    				Plane.fire(this.frequency);
    				//创建敌机
    				this.createEnemy();
    			}
    			createEnemy (){
    				//设置敌机的类型和产生的概率
    				//敌小机
    				setInterval(function(){
    					Math.random() > 0.5 ? new Enemy(0) : "";
    				},500)
    				//敌中机
    				setInterval(function(){
    					Math.random() > 0.5 ? new Enemy(1) : "";
    				},1000)
    				//敌大机
    				setInterval(function(){
    					Math.random() > 0.2 ? new Enemy(2) : "";
    				},8000)
    			}
    		};
    		//我方飞机
    		var Plane = {
    			//创建我方飞机
    			ele : $create('div','my-warplain'),
    			//初始化我方飞机
    			init : function(){
    				//放到页面
    				$addBody(this.ele);
    				//我方飞机定位
    				this.ele.style.left = document.documentElement.clientWidth / 2 - this.ele.offsetWidth / 2 + 'px';
    				this.ele.style.top = document.documentElement.clientHeight - this.ele.offsetHeight + 'px';
    				//调用我方飞机运动
    				this.fly();
    			},
    			fly : function(){
    				
    				//获取引擎div
    				let bodyMain = document.getElementById("body_main");
    				//鼠标跟随
    				document.onmousemove = (evt)=>{
    					var e = evt || window.event;
    					//设置边界
    					var left = e.pageX - this.ele.offsetWidth / 2;
    					var top = e.pageY - this.ele.offsetHeight / 2;
    					if(left <= bodyMain.offsetLeft){
    						left = bodyMain.offsetLeft;
    					}
    					if(left >= bodyMain.offsetLeft + bodyMain.offsetWidth - this.ele.offsetWidth){
    						left = bodyMain.offsetLeft + bodyMain.offsetWidth - this.ele.offsetWidth;
    					}
    					this.ele.style.left = left + 'px';
    					this.ele.style.top = top + 'px';
    				}
    			},
    			fire : function(frequency){
    				let frequencyMe = 200; //默认的开火频率
    				switch(frequency){
    					case 0 : frequencyMe = 500;break;
    					case 1 : frequencyMe = 400;break;
    					case 2 : frequencyMe = 200;break;
    					case 3 : frequencyMe = 50;break;
    				}
    				
    				//设置子弹ID
    				let bulletId = 0;
    				
    				setInterval(()=>{
    					this.bullet.push(new Bullet(bulletId));
    					bulletId ++;
    				},frequencyMe)
    			},
    			bullet : []
    		}
    		
    		//子弹
    		class Bullet{
    			constructor(id){
    				this.id = id;
    				//创建子弹
    				this.ele = $create('div','bullet');
    				//初始化
    				this.init();
    			}
    			init(){
    				//加到页面
    				$addBody(this.ele);
    				//给子弹添加id
    				this.ele.id = this.id;
    				//定位子弹
    				this.ele.style.left = Plane.ele.offsetLeft + Plane.ele.offsetWidth / 2 - this.ele.offsetWidth / 2 + 'px';
    				this.ele.style.top = Plane.ele.offsetTop - this.ele.offsetHeight + 'px';
    				//让子弹飞
    				this.fly();
    			}
    			fly(){
    				
    				this.timer = setInterval(()=>{
    					this.ele.style.top = this.ele.offsetTop - 15 + 'px';
    					if(this.ele.offsetTop <= 10){
    						this.boom(); //子弹爆炸
    					}
    				},30)
    			}
    			boom(){
    				this.ele.className = 'bullet_die';
    				clearInterval(this.timer);
    				
    				setTimeout(()=>{
    					this.ele.remove();
    					for(var i = 0,len = Plane.bullet.length;i < len;i ++){
    						if(this.ele.id == Plane.bullet[i].id){
    							Plane.bullet.splice(i,1);
    						}
    					}
    				},100)
    			}
    		};
    		
    		//敌机
    		class Enemy{
    			constructor(type){
    				this.type = type;
    				this.init();
    			}
    			init (){
    				switch(this.type){
    					case 0 : this.ele = $create('div','enemy-small');this.hp = 1;this.speed = 10;break;
    					case 1 : this.ele = $create('div','enemy-middle');this.hp = 5;this.speed = 8;break;
    					case 2 : this.ele = $create('div','enemy-large');this.hp = 50;this.speed = 2;break;
    				}
    				//加到页面
    				$addBody(this.ele);
    				//定位敌机
    				this.position();
    			}
    			position(){
    				let bodyMain = document.getElementById("body_main");
    				this.ele.style.left = $random(bodyMain.offsetLeft,bodyMain.offsetLeft + bodyMain.offsetWidth - this.ele.offsetWidth) + 'px';
    				this.ele.style.top = - this.ele.offsetHeight + 'px';
    				//敌机起飞
    				this.fly();
    			}
    			fly (){
    				
    				this.timer = setInterval(()=>{
    					this.ele.style.top = this.ele.offsetTop + this.speed + 'px';
    					//碰撞检测
    					this.collision();
    					if(this.ele.offsetTop >= document.documentElement.clientHeight){
    						this.ele.remove();
    						clearInterval(this.timer);
    					}
    				},30)
    			}
    			collision(){
    				for(let i = 0;i < Plane.bullet.length;i ++){
    					if(!(this.ele.offsetTop + this.ele.offsetHeight < Plane.bullet[i].ele.offsetTop || Plane.bullet[i].ele.offsetTop + Plane.bullet[i].ele.offsetHeight < this.ele.offsetTop)){
    						if(!(Plane.bullet[i].ele.offsetLeft + Plane.bullet[i].ele.offsetWidth < this.ele.offsetLeft || this.ele.offsetLeft + this.ele.offsetWidth < Plane.bullet[i].ele.offsetLeft)){
    							Plane.bullet[i].boom();
    							this.hp --;
    							if(this.hp == 0){
    								this.ele.remove();
    								clearInterval(this.timer);
    							}
    						}
    						
    					}
    				}
    			}
    		}
    		//工具箱
    		//删除元素
    		Element.prototype.remove = function(){
    			this.parentNode.removeChild(this);
    		}
    		//创建对象并添加类名
    		function $create(tagName,className){
    			var ele = document.createElement(tagName);
    			ele.className = className;
    			return ele;
    		}
    		//将元素对象添加到页面中
    		function $addBody(obj){
    			document.body.appendChild(obj);
    		}
    		//随机整数
    		function $random(min,max){
    			return Math.floor(Math.random() * (max - min + 1) + min);
    		}
    	</script>
    </head>
    <body>
    	<div id="body_main" class="main">
    		<ul id="options" class="options">
    			<li value="1">超级困难</li>
    			<li value="2">非常困难</li>
    			<li value="3">比较困难</li>
    			<li value="4">就选我吧</li>
    		</ul>
    	</div>
    </body>
    </html>
    
  • 相关阅读:
    hadoop-处理小文件
    hadoop 文件合并
    hadoop multipleoutputs
    超酷的 Vim 搜索技巧
    linux中DHCP服务配置文件/etc/dhcpd.conf详细说明
    cobbler启动问题
    MYSQL 5.5.32的单机多实例部署
    自动化运维之Cobbler自动化部署安装操作系统
    运维自动化之Cobbler系统安装使用详解[good]
    Cobbler自动部署主机系统
  • 原文地址:https://www.cnblogs.com/zhongchao666/p/9275591.html
Copyright © 2011-2022 走看看