使用HTML5制作的网页游戏-管道小鸟(附源码)

目录

1.整体项目框架

2.css样式

3. 游戏初始化

4.游戏结束提示

5.效果图​


1.整体项目框架

2.css样式

*{
				padding: 0px;
				margin: 0px;
			}
			#game{
				width: 800px;
				height: 600px;
				background-image: url(img/bg.png);
				position: relative;
				overflow: hidden;/*溢出隐藏*/
			}
			#bird{
				width: 34px;
				height: 25px;
				background: url(img/bird.png) -8px -10px no-repeat;
				position: absolute;
				top: 100px;
				left: 100px;
			}
			#score{
				color: red;
				position: absolute;
				top: 15px;
				left: 25px;
				z-index: 100;
			}
			#start{
				position: absolute;
				top: 190px;
				left: 300px;
				z-index: 150;
			}


           

 3. 游戏初始化:


            1.获取背景和小鸟的对象
            2.初始化天空和小鸟的位置
           3.移动背景图片,将背景图的横坐标X连续减少5px,使它往左移动;
            4.背景图片移动的同时设置小鸟持续下落,鸟的纵坐标Y连续增加1px,
            5.小鸟下落做碰撞判断:
               5.1判断小鸟落到地上,gameover
                5.2判断小鸟飞出天际,gameover

             6.键盘向上键UP控制小鸟向上飞,每次飞10px;
             7.创建管道:
                7.1创建管道对象
                7.2初始化管道位置
                7.3初始化上下管道的长度
                7.4创建管道容器div,分别设置容器的属性:宽度、高度、背景图、绝对位置
                 7.5将管道节点添加到天空背景节点中

             8.让管道向左移动setInterval()
                8.1设置管道初始位置
                8.2设置管道的随机高度
                8.3创建管道容器div
                8.4设置容器样式
                8.5添加容器到背景中

             9.让管道动起来
                9.1管道的横坐标依次减少
                9.2管道超出屏幕再设置从头开始进入
                9.3累计分数:通过一根管道加一分
                9.4判断小鸟的碰撞

<div id="game">
			<span id="score">
				得分是:0
			</span>
			<div id="bird"></div>
		</div>
		
		<script type="text/javascript">
			
			var count=0;
			var score=document.getElementById("score");
			var game=document.getElementById("game");
			var birdEl=document.getElementById("bird");
			//初始化天空的位置
			var sky={
				x:0
			}
			//初始化小鸟的位置
			bird={
				speedX: 5,
				speedY: 0,
				x:birdEl.offsetLeft,
				y:birdEl.offsetTop
			}
			
			var running=true;//默认游戏开始
			
			/*
			 * 水平移动背景
			 */
			setInterval(function(){
				if (running) {
					//播放音乐
					//playSound("sound/赵传 - 我是一只小小鸟.mp3");
					//屏幕连续水平移动5像素
					sky.x-=5;
					game.style.backgroundPositionX=sky.x+"px";
				
					//小鸟持续下降
					bird.speedY+=1;
					bird.y+=bird.speedY;
					if(bird.y<0){
						//小鸟飞出天际
						running=false;
						bird.y=0;
						console.log(birdEl.offsetHeight);
						gameover();
					}
					if(bird.y+birdEl.offsetHeight>600){
						running=false;
						bird.y=600-birdEl.offsetHeight;
						gameover();
					}
					//固定在死亡的位置
					birdEl.style.top = bird.y+"px";
				}
			},30);
			
			/*
			 * 键盘操作小鸟向上飞
			 */
			document.onkeydown=function(){
				var key=event.keyCode;
				if(key==38){
					bird.spee
					dY =-10;
				}
			}
			
		
			function createPipe(positionX){
				//7.1创建管道对象
				var pipe={};
			 	//7.2初始化管道位置
			 	pipe.x=positionX;
			 	//7.3初始化上下管道的长度
			 	pipe.uHeight=200+parseInt(Math.random()*100);
			 	pipe.dHeight=600-pipe.uHeight-200;
			 	pipe.uTop=pipe.uHeight+200;
			 	//7.4创建管道容器div,分别设置容器的属性:宽度、高度、背景图、绝对位置
			 	var uPipe=document.createElement("div");
			 	uPipe.style.width="52px";
			 	uPipe.style.height=pipe.uHeight+"px";
			 	uPipe.style.background="url('img/down.png') no-repeat center bottom";
			 	uPipe.style.position="absolute";
			 	uPipe.style.top="0px";
			 	uPipe.style.left=pipe.x+"px";
			 	//7.5将管道节点添加到天空背景节点中
			 	game.appendChild(uPipe);
			 	
			 	var dPipe=document.createElement("div");
			 	dPipe.style.width="52px";
			 	dPipe.style.height=pipe.dHeight+"px";
			 	dPipe.style.background="url(img/up.png) no-repeat center top";
			 	dPipe.style.position="absolute";
			 	dPipe.style.top=pipe.uTop+"px";
			 	dPipe.style.left=pipe.x+"px";
			 	game.appendChild(dPipe);
			 	
			 	//9.让管道动起来
			 	setInterval(function(){
			 		if(running){
			 			pipe.x-=3;//移动位置
			 			uPipe.style.left=pipe.x+"px";
			 			dPipe.style.left=pipe.x+"px";
			 			
			 			//管道超出屏幕再设置从头开始进入
			 			if (pipe.x<-52) {
			 				pipe.x=800;
			 			}
			 			//累计分数:通过一根管道加分
			 			if(bird.x>pipe.x+52){
			 				count+=1;
			 				score.innerHTML="<h3>得分:"+count+"</h3>"
			 			}
			 			
			 			//判断小鸟的碰撞
			 			var uCrash=bird.x+34>pipe.x && bird.x<pipe.x+52 && bird.y<pipe.uHeight;
			 			var dCrash=bird.x+34>pipe.x && bird.x<pipe.x+52 && bird.y>pipe.uHeight+180;
			 			
			 			if(uCrash || dCrash){
			 				running=false;
			 				gameover();
			 			}
			 		}
			 	},30);
			}

4.游戏结束提示

function gameover(){
				var over=document.createElement("img");
				over.src="img/gameover.png";
				over.style.position="absolute";
				over.style.top="190px";
				over.style.left="330px";
				over.style.zIndex="150";
				game.appendChild(over);
			}
			
			createPipe(400);
			createPipe(600);
			createPipe(800);
			createPipe(1000);
		</script>

5.效果图

 

 注:使用键盘上下键控制小鸟。

Jarvis!
关注 关注
  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
赛车游戏代码大全html,赛车游戏代码
weixin_39634438的博客
06-04 2103
该楼层疑似违规已被系统折叠隐藏此楼查看此楼Co nst D = 100 '方格的宽度Const BT = 3000 '跑道底部的y坐标Dim l1(22) As Integer '每层跑道左边有几个方块Dim l2(22) As Integer '每层跑道右边有几个方块Dim cx As Single '赛车的在x轴的位置Dim cy As IntegerDim i As IntegerPriv...
html 飞翔的小鸟(Flappy Bird)小游戏
12-27
代码有注释简单易懂
鸟飞行html代码控制,html5 canvas一群鸟飞行
weixin_42576186的博客
06-10 241
html5 canvas一群鸟飞行代码片段:canvas = document.getElementsByTagName('canvas')[0];engine = canvas.getContext('2d');width = window.innerWidth;height = window.innerHeight;canvas.setAttribute('width', width);ca...
Html网页游戏源代码
爱编程的鱼的博客
04-12 922
【代码】Html网页游戏源代码。
动画效果-飞翔的小鸟
qq_37049128的博客
07-22 265
<DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <style> .bird{position:absolute;left:0;width:200px} </style> <script> /* 匀速运动 * 速度保持不变的运动 飞翔小鸟: * 不断改变l.
❤️创意网页:有趣的文字冒险游戏(可以无限拓展)
VLOKL的博客
07-12 2349
❤️创意网页:有趣的文字冒险游戏(可以无限拓展)
大学生个人网页设计 HTML个人网页制作 web个人网站模板 简单静态HTML个人网页作品
热门推荐
HTML网页设计
07-31 5万+
🧑个人网页设计、🙋‍♂️个人简历制作、👨‍💼简单静态HTML个人网页作品、👨‍🏭个人介绍网站模板 、等网站的设计与制作。⭐个人网页设计网站模板采用DIV CSS布局制作网页作品有多个页面,如 :个人介绍(文字页面)、我的作品(图片列表)、个人技能(图文页面)、在线留言(表单页面)CSS样式方面网页整体采用左右布局结构,制作网页背景图片,导航区域每个导航背景色不同,导航背景色与页面背景呼应。🏅 一套A+的网页应该包含 (具体可根据个人要求而定)📔网站布局方面:计划采用目前主流的、能兼容各大...
JavaScript操作canvas制作前端H5小游戏——Flappy Bird
weixin_30917213的博客
02-08 951
游戏查看 源码和素材下载 博主学习前端一年多一点,还是个新手,不过勇于尝试,才能不断进步,如果代码质量不好,欢迎提意见,下面开始讲解,首先贴张游戏界面图: 游戏使用canvas画图制作,分析游戏确定有这几个元素: 天空背景不动 小鸟上下移动,左右不动 地板和水管向左移动(造成小鸟向前移动的错觉) canvas画图是覆盖画图,所以画图顺序很重要,它的api我就不...
HTML5 flappy bird(飞扬的小鸟)像素鸟源码
11-21
HTML5 flappy bird(飞扬的小鸟)像素鸟源码
html游戏--纯页面html游戏贪吃蛇(基础版)
nanZhaiXiaoLang的博客
02-24 9807
直接复制到一个页面就行了 代码如下: <!DOCTYPE html> <html> <head> <title>贪吃蛇</title> <meta charset="UTF-8"> <meta name="keywords" content="贪吃蛇"> <meta name="Description" content="这是一个初学者用来学习的小游戏"> <style type="text/cs
html游戏代码_html5实现简单别踩白块小游戏
weixin_40006977的博客
11-13 1万+
内容介绍1.简介别踩白块这个游戏相信很多人都在手机上玩过,今天我们就来一个网页版的,先上一张游戏效果图:属于简化版别踩白块,代码相对较为简单易学,主要涉及通过 javascript 操作元素节点的增删以及属性节点(class)的操作。2.知识点HTML/CSSJavaScript元素节点增删属性节点操作3.项目架构 puzzle |index.html |css/index.cs...
226款Html5游戏源码-非积分
12-23
226款Html5游戏源码
80个超好玩的html5网页游戏源码
06-22
80个超好玩的html5网页游戏源码
一个完整的HTML5网页游戏源码:蘑菇与熊.rar
07-10
一个完整的HTML5网页游戏源码:蘑菇与熊游戏代码,界面的相当专业,画质不错,游戏流畅度也是相当牛的,在支持HTML5的浏览器下都可以运行,游戏界面效果如截图所示,具体玩法我也没研究,只顾着研究HTML5的技术细节了。。。想学习HTML5的朋友,这款蘑菇游戏的代码绝对是值得参考的。
html5游戏
11-16
html5简易游戏,单纯前端页面制作html5新手试炼,实践
html5网页版俄罗斯方块小游戏源码下载
11-03
html5网页版俄罗斯方块小游戏源码下载 html5网页版俄罗斯方块小游戏源码下载
Html5游戏源码-小鸟飞飞飞.zip
11-08
Html5游戏源码——小鸟飞飞飞.zip Html5游戏源码——小鸟飞飞飞.zip
html5微信小游戏源码 小鸟飞飞飞(仅用于参考)
01-25
html5微信小游戏源码 小鸟飞飞飞(仅用于参考)html5微信小游戏源码 小鸟飞飞飞(仅用于参考)html5微信小游戏源码 小鸟飞飞飞(仅用于参考)html5微信小游戏源码 小鸟飞飞飞(仅用于参考)html5微信小游戏源码 小鸟...
HTML5游戏源码下载网页游戏JS小游戏-山寨版愤怒的小鸟源码.zip
最新发布
04-29
HTML5游戏源码下载,JS小游戏源码下载,坦克大战,驴子跳,连连看,俄罗斯方块,圈泡泡,塔防,太空战舰,愤怒的小鸟,植物大战僵尸,水果忍者,扫雷,超级玛丽,打地鼠,坦克大战,麻将等JS小游戏源码下载,游戏...
经典的HTML5游戏及其源码分析
06-06
HTML5游戏使用HTML5技术开发的游戏,具有跨平台、无需安装、可在线玩等优点。以下是一些经典的HTML5游戏及其源码分析: 1. Flappy Bird Flappy Bird是一款非常简单却又极具挑战性的游戏,由越南独立开发者Dong ...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 使用HTML5制作的网页游戏-管道小鸟(附源码) 6193
  • 「酒店管理系统」 · Java Swing + mysql 开发 2182
  • 使用JDBC访问数据库以及如何使用jdbc连接数据库 1354
  • JAVA基础知识点 852
  • 「酒店管理系统」 · Java Swing + mysql 开发 717

最新评论

  • 「酒店管理系统」 · Java Swing + mysql 开发

    2201_75622099: 求源码大佬

  • 「酒店管理系统」 · Java Swing + mysql 开发

    伊利高钙奶: 求源码,大佬

  • 「酒店管理系统」 · Java Swing + mysql 开发

    xiaowangiiii: 求码源(✧∇✧)

最新文章

  • Java程序设计基础- 数组
  • Java程序设计--Swing基础(第2部分)
  • Java程序设计--Swing基础(第1部分)
2024年8篇
2022年4篇
2021年1篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

两个鬼故事dnf仓库锁解除水调歌头苏轼原文起名柳什么方姓女孩起名子众科天一阁透视软件架子鼓起名字乌拉草是什么快修保养店起名costacoffee加盟海天味业市值超越中石化店铺取名起名大全测生鲜超市起个名字圆周长的计算公式clonnad汇添富移动互联尼尔斯骑鹅旅行记梗概党员民主评议个人总结中国奥委会欧洲杯预选赛直播软件公司起名大全免费北京卫视在线直播南狂仙尊金宝宝起名工具去哪儿特价机票网manhuascan起名好的网站公猫起名字大全产品 起名规划公司起名少年生前被连续抽血16次?多部门介入两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”淀粉肠小王子日销售额涨超10倍高中生被打伤下体休学 邯郸通报单亲妈妈陷入热恋 14岁儿子报警何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言张家界的山上“长”满了韩国人?男孩8年未见母亲被告知被遗忘中国拥有亿元资产的家庭达13.3万户19岁小伙救下5人后溺亡 多方发声315晚会后胖东来又人满为患了张立群任西安交通大学校长“重生之我在北大当嫡校长”男子被猫抓伤后确诊“猫抓病”测试车高速逃费 小米:已补缴周杰伦一审败诉网易网友洛杉矶偶遇贾玲今日春分倪萍分享减重40斤方法七年后宇文玥被薅头发捞上岸许家印被限制高消费萧美琴窜访捷克 外交部回应联合利华开始重组专访95后高颜值猪保姆胖东来员工每周单休无小长假男子被流浪猫绊倒 投喂者赔24万小米汽车超级工厂正式揭幕黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发当地回应沈阳致3死车祸车主疑毒驾恒大被罚41.75亿到底怎么缴妈妈回应孩子在校撞护栏坠楼外国人感慨凌晨的中国很安全杨倩无缘巴黎奥运校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变王树国卸任西安交大校长 师生送别手机成瘾是影响睡眠质量重要因素国产伟哥去年销售近13亿阿根廷将发行1万与2万面值的纸币兔狲“狲大娘”因病死亡遭遇山火的松茸之乡“开封王婆”爆火:促成四五十对奥巴马现身唐宁街 黑色着装引猜测考生莫言也上北大硕士复试名单了德国打算提及普京时仅用姓名天水麻辣烫把捣辣椒大爷累坏了

两个鬼故事 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化