flappy bird js 源码

2024-08-31 14:38
文章标签 源码 js flappy bird

本文主要是介绍flappy bird js 源码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

素材

注入灵魂

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>#canvas{background-image: url(res/sky.png);}</style>
</head>
<body><canvas id="canvas" width="800" height="400"></canvas><div id="res"></div>
</body><script>var canvas = document.getElementById('canvas')var context = canvas.getContext('2d')// 创建一个图片var img = new Image();img.src = 'res/birds.png'var birdX = 200;var birdY = 100;var birdTime = null;var stop = 0img.onload = function () {if(birdTime === null && stop === 0) {birdTime = setInterval(function(){if (birdY <= 350) {birdY++}context.clearRect(0,0,800,400)drawColumn ()context.drawImage(img,0,0,52,45,birdX,birdY,52,45);},10)}}var click = nulldocument.onmouseup = function () {if (stop === 0) {context.drawImage(img,0,0,52,45,birdX,birdY,52,45);clearInterval(click)}}document.onmousedown = function () {if (stop === 0) {click  = setInterval(function() { context.drawImage(img,104,0,52,45,birdX,birdY,52,45);birdY = birdY-2},10)}}// 柱子 var columnArr = []var columnTiner = nullfunction createColumn () {columnTiner = setInterval(function() {var column = {}column.postionX = 800column.postionY = -Math.round(Math.random()*100 + 150);column.imgA = new Image()column.imgB = new Image()column.imgA.src = 'res/pipe2.png'column.imgB.src = 'res/pipe1.png'column.id = new Date().getTime()columnArr.push(column)},1500)}createColumn()var same = null;var mark = 0function drawColumn () {for(var i = 0 ; i < columnArr.length; i++) {columnArr[i].postionX--context.drawImage(columnArr[i].imgA,columnArr[i].postionX,columnArr[i].postionY - 100);context.drawImage(columnArr[i].imgB,columnArr[i].postionX,columnArr[i].postionY + 450);if (birdX + 40 >= columnArr[i].postionX && birdX - 70 <= columnArr[i].postionX) {if (columnArr[i].id != same) {mark++same = columnArr[i].id document.getElementById('res').innerHTML = "得分" + mark}// 判定碰撞if(birdY < columnArr[i].postionY + 300 || birdY + 35 > columnArr[i].postionY + 450) {clearInterval(columnTiner)clearInterval(birdTime)stop = 1document.getElementById('res').innerHTML = "最后得分" + mark + "刷新页面重新开始"}}}}</script>
</html>

 

 

这篇关于flappy bird js 源码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1124187

相关文章

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

在Node.js中使用.env文件管理环境变量的全过程

《在Node.js中使用.env文件管理环境变量的全过程》Node.js应用程序通常依赖于环境变量来管理敏感信息或配置设置,.env文件已经成为一种流行的本地管理这些变量的方法,本文将探讨.env文件... 目录引言为什么使php用 .env 文件 ?如何在 Node.js 中使用 .env 文件最佳实践引

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

java 恺撒加密/解密实现原理(附带源码)

《java恺撒加密/解密实现原理(附带源码)》本文介绍Java实现恺撒加密与解密,通过固定位移量对字母进行循环替换,保留大小写及非字母字符,由于其实现简单、易于理解,恺撒加密常被用作学习加密算法的入... 目录Java 恺撒加密/解密实现1. 项目背景与介绍2. 相关知识2.1 恺撒加密算法原理2.2 Ja

Nginx屏蔽服务器名称与版本信息方式(源码级修改)

《Nginx屏蔽服务器名称与版本信息方式(源码级修改)》本文详解如何通过源码修改Nginx1.25.4,移除Server响应头中的服务类型和版本信息,以增强安全性,需重新配置、编译、安装,升级时需重复... 目录一、背景与目的二、适用版本三、操作步骤修改源码文件四、后续操作提示五、注意事项六、总结一、背景与

Android实现图片浏览功能的示例详解(附带源码)

《Android实现图片浏览功能的示例详解(附带源码)》在许多应用中,都需要展示图片并支持用户进行浏览,本文主要为大家介绍了如何通过Android实现图片浏览功能,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

使用Python获取JS加载的数据的多种实现方法

《使用Python获取JS加载的数据的多种实现方法》在当今的互联网时代,网页数据的动态加载已经成为一种常见的技术手段,许多现代网站通过JavaScript(JS)动态加载内容,这使得传统的静态网页爬取... 目录引言一、动态 网页与js加载数据的原理二、python爬取JS加载数据的方法(一)分析网络请求1

8种快速易用的Python Matplotlib数据可视化方法汇总(附源码)

《8种快速易用的PythonMatplotlib数据可视化方法汇总(附源码)》你是否曾经面对一堆复杂的数据,却不知道如何让它们变得直观易懂?别慌,Python的Matplotlib库是你数据可视化的... 目录引言1. 折线图(Line Plot)——趋势分析2. 柱状图(Bar Chart)——对比分析3

VSCode中配置node.js的实现示例

《VSCode中配置node.js的实现示例》本文主要介绍了VSCode中配置node.js的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一.node.js下载安装教程二.配置npm三.配置环境变量四.VSCode配置五.心得一.no