| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> 摸鱼小游戏 -> 正文阅读 |
|
[移动开发]摸鱼小游戏 |
<!DOCTYPE html> <html lang="en"> <head> ? ? <meta charset="UTF-8"> ? ? <meta http-equiv="X-UA-Compatible" content="IE=edge"> ? ? <meta name="viewport" content="width=device-width, initial-scale=1.0"> ? ? <title>Document</title> </head> <body> ? ? <style> ? ? ? ? ?* { ? ? ? ? ? ? margin: 0; ? ? ? ? ? ? padding: 0; ? ? ? ? } ? ? ? ? ? ? #game { ? ? ? ? width: 800px; ? ? ? ? height: 600px; ? ? ? ? background: url('./img/sky.png'); ? ? ? ? position: relative; ? ? ? ? margin: auto; ? ? ? ? overflow: hidden; ? ? ? ? } ? ? ? ? ? ? #bird { ? ? ? ? width: 34px; ? ? ? ? height: 25px; ? ? ? ? background: url('./img/birds.png') -10px -8px no-repeat; ? ? ? ? position: absolute; ? ? ? ? top: 100px; ? ? ? ? left: 100px; ? ? ? ? } ? ? ? ? .btnGame{ ? ? ? ? ? margin: 2% 45%; ? ? ? ? } ? ? </style> ? ? <div id="game"> ? ? ? ? <!-- 小鸟 --> ? ? ? ? <div id="bird"></div> ? ? </div> ? ? <input type="button" value="重新开始" class="btnGame" οnclick="replaceDoc()"> ? ? <div style="width: 100vw;"> ? ? ? <div ?style="color: #409Eff; margin-left: 30%; ">注明: 碰到上管道或下管道临界值则游戏终止 不能让小鸟落下通过鼠标左键点击让小鸟 保持在中间位置</div> ? ? </div> ? ? <script> ? ? ? ? function replaceDoc(){ ? ? ? ? ? ? window.location.reload() ? ? ? ? } ? ? //获取游戏背景和小鸟 ? ? var game = document.getElementById('game'); ? ? var birdEle = document.getElementById('bird'); ? ? ? ? //初始化背景图 ? ? var sky = { ? ? ? x: 0 //背景图初始位置为0 ? ? } ? ? ? ? //初始化小鸟 ? ? var bird = { ? ? ? speedX: 5, //小鸟在X轴的速度 ? ? ? SpeedY: 0, //小鸟在Y轴的速度 ? ? ? //小鸟坐标 ? ? ? x: birdEle.offsetLeft, //小鸟初始位置在绝对定位的位置 ? ? ? y: birdEle.offsetTop, ? ? } ? ? ? ? var runing = true; //游戏状态 ? ? ? ? setInterval(function () { ? ? ? if (runing) { ? ? ? ? //小鸟飞行(其实是背景在动) ? ? ? ? sky.x -= 5; //背景每次-5px,以实现向左运动的效果 ? ? ? ? game.style.backgroundPositionX = sky.x + 'px'; ? ? ? ? //小鸟上下运动 ? ? ? ? bird.SpeedY += 1; //每一次点击小鸟向上10px后开始自增也就是再自动向下 ? ? ? ? bird.y += bird.SpeedY; //小鸟自动不断向下运动 ? ? ? ? //判断游戏状态 ? ? ? ? if (bird.y < 0) { //超出游戏背景顶部时游戏结束 ? ? ? ? ? runing = false; ? ? ? ? ? bird.y = 0; ? ? ? ? } ? ? ? ? if (bird.y + birdEle.offsetHeight > 600) { //超出游戏背景底部时游戏结束 ? ? ? ? ? runing = false; ? ? ? ? ? bird.y = 600 - birdEle.offsetHeight; ? ? ? ? } ? ? ? ? birdEle.style.top = bird.y + 'px'; ? ? ? } ? ? }, 30); ? ? ? ? //点击时小鸟向上运动 ? ? document.onclick = function () { ? ? ? bird.SpeedY = -10; //点击一次向上运动10px ? ? } ? ? ? ? //创建管道 ? ? function creatPipe(position) { ? ? ? var pipe = {}; ? ? ? pipe.x = position; ? ? ? pipe.upHeight = 200 + parseInt(Math.random() * 100); //上管道高度为200 - 300px ? ? ? pipe.doHeight = 600 - pipe.upHeight - 200; //下管道高度 ? ? ? pipe.doTop = pipe.upHeight + 200; //上下两管道之间200px ? ? ? ? ? //创建上管道 ? ? ? var upPipe = document.createElement('div'); //新建div ? ? ? upPipe.style.width = '52px'; ? ? ? upPipe.style.height = pipe.upHeight + 'px'; ? ? ? upPipe.style.background = 'url(./img/pipe2.png) no-repeat center bottom'; ? ? ? upPipe.style.position = 'absolute'; ? ? ? upPipe.style.top = '0px'; ? ? ? upPipe.style.left = pipe.x + 'px'; ? ? ? game.appendChild(upPipe); //将上管道追加到游戏页面中 ? ? ? ? ? //创建下管道 ? ? ? var doPipe = document.createElement('div'); //新建div ? ? ? doPipe.style.width = '52px'; ? ? ? doPipe.style.height = pipe.doHeight + 'px'; ? ? ? doPipe.style.background = 'url(./img/pipe1.png) no-repeat center top'; ? ? ? doPipe.style.position = 'absolute'; ? ? ? doPipe.style.top = pipe.doTop + 'px'; ? ? ? doPipe.style.left = pipe.x + 'px'; ? ? ? game.appendChild(doPipe); //将下管道追加到游戏页面中 ? ? ? ? ? //管道进行运动 ? ? ? setInterval(function () { ? ? ? ? if (runing) { //游戏处于运行状态时管道再运动 ? ? ? ? ? pipe.x -= 2; //x方向不断-2px,以实现管道向左运动的效果 ? ? ? ? ? upPipe.style.left = pipe.x + 'px'; ? ? ? ? ? doPipe.style.left = pipe.x + 'px'; ? ? ? ? ? if (pipe.x < -52) { //管道移出最左侧时回到原位,实现不间断效果 ? ? ? ? ? ? pipe.x = 800; ? ? ? ? ? } ? ? ? ? ? //上下管道临界值 ? ? ? ? ? var uCheck = bird.x + 34 > pipe.x && bird.x < pipe.x + 52 && bird.y < pipe.upHeight; ? ? ? ? ? var dCheck = bird.x + 34 > pipe.x && bird.x < pipe.x + 52 && bird.y > pipe.upHeight + 200; ? ? ? ? ? if (uCheck || dCheck) { //碰到上管道或下管道临界值则游戏终止 ? ? ? ? ? ? runing = false; ? ? ? ? ? } ? ? ? ? } ? ? ? }, 30) ? ? } ? ? creatPipe(400); //产生四组管道 ? ? creatPipe(600); ? ? creatPipe(800); ? ? creatPipe(1000); ? </script> </body> </html> |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 23:46:21- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |