实战JavaScript:实现像素鸟小游戏
项目完整源码像素鸟小游戏
运行效果
知识点
- underscore中random产生随机数、without从数组中移除数据
- 在游戏开发的时候,应该始终用面向对象的思想来做。有一个游戏管控大类(Game)。
- 用一个json文件,保存我们需要的图片数据,方便在内存中创建每一张图片对象。
- canvas的宽度和高度不能固定,根据电脑动态设置。
- 使用ES6语法创建类。
class Class(){constructor(params){// 属性}function1(){// 方法}function1(){// 方法} }
- FPS (每秒传输帧数(Frames Per Second)) 刷新率
FNO 记录当前走过总帧数
封装获取帧率工具:帧率类 - 在每一次canvas绘制之前,都要进行清屏操作。
ctx.clearRect(0, 0, canvas.width, canvas.height);
- 资源加载。通过AJAX加载资源。静态资源类StaticResourceUtil.js用来加载本地图片。
封装资源加载工具:资源加载 - 图片绘制,背景类BackGround.js,用来绘制背景。
通过图片的移动实现游戏的移动。
图片的移动即不断改变图片的X坐标,不断绘制。
图片的无缝移动:绘制图片的两倍,当全部图片宽度走完的时候,将图片X重新改为0.
背景图的速度设置,事物离得越近速度越快,越远速度越慢。 - 取整、字符串转数字:
parseInt(txt);
- 管道绘制,管道类Pipe.js,用来绘制管道。
管道的高度、位置要随机生成。
但要有最小高度与最大高度。
需要一个管道数组来保存所有的管道。
当管道移出画布,需要将管道从管道数组中移除。 - 用gameEnd来标志游戏是否结束。
- 鸟的绘制,鸟类bird.js,用来绘制鸟。
根据帧率不断煽动翅膀。 - 模拟重力加速度,利用dY,不断更新鸟的y值。导致鸟的下落越来越快。
- 鸟的旋转。利用save和restore保存和恢复画布的状态。
利用translate旋转画布的x、y轴,旋转鸟恢复。 - 鼠标点击事件,在鸟的上升过程中,固定值模拟阻力。
- 边界检测。上边界y<0。下面接y>canvas.height - 地板高度 - 鸟高度
- 碰撞检测。利用管道进行检测。首先判断鸟有没有进到管道竖着的区域,再判断鸟是在空白天空区域还是管道区域,从而进行检测。
- 小鸟死亡,在死亡的地方绘制鲜血。鲜血撒完游戏结束。
- 分数类。根据几位判断分数显示基准线。判断小鸟是否飞到管道竖着的部分,如果飞过,则分数加一。
- 求一个数字有几位。
num.toString().length
- 游戏初始化。设置背景及图片,点击开始后div隐藏。
实战JavaScript:实现像素鸟小游戏相关推荐
- 使用CocosCreator+JS 完成Flappybrid(像素鸟)小游戏
使用CocosCreator+JS 完成Flappybrid(像素鸟)小游戏 前言 这是我在刚开始学Cocos做游戏时做的第一个小游戏.当时做了两个版本数学版和碰撞组件版. 环境 开发工具: Coco ...
- CocosCreator像素鸟小游戏实现(有源码)超详细教程 TS实现小游戏 零基础开发
CocosCreator像素鸟小游戏实现(有源码)超详细教程 TS实现小游戏 大家中秋国庆快乐哈 前言 老规矩先看效果 源码的获取方式在最下面 对于本游戏来说canvas这样设置最佳哦 游戏实现思路: ...
- 前端案例:像素鸟小游戏(js+dom操作,完整代码,附案例素材)
目录 一.案例效果 二.实现思路 三.完整代码+详细注释 四.案例素材 一.案例效果 二.实现思路 创建游戏背景板和小鸟,并分别设置相对定位与绝对定位: 初始化背景图的位置: 初始化小鸟的位置: 设置 ...
- 像素鸟java版_JAVA 像素鸟小游戏源码(支持俩人一起玩)
[实例简介] [实例截图] 双人 像素鸟如下: [核心代码] package Flappybirid_1; import java.awt.image.BufferedImage; import ja ...
- Python-项目实战-《外星人入侵》Pygame小游戏-阶段二:外星人来了
来源于<Python编程从入门到实践>的13章外星人来了. 此为第二阶段: Python-项目实战-<外星人入侵>Pygame小游戏-阶段一:武装飞船(含教程)_Kox233的 ...
- 用javascript编写的打字小游戏
最近在学ExtJs,看了蔡世友老师的视频课程,在第十课中留了一个小作业,就是用javascript写一个打字小游戏,于是按照前几课所讲的知识自己编写了一个. 一.需求:网页上在随机位置会出现字母,字母 ...
- 弹力细胞,一个由JavaScript写的网页小游戏
弹力细胞 (BounceCell) 一个由JavaScript写的网页小游戏 作为大一菜鸟,这是我第一次比较正式的写文章 [害臊] 游戏玩法 通过鼠标或触屏控制屏幕底部的滑动弹板将发射的小球反弹出去撞 ...
- 用javascript+jquery编写的小游戏-贪吃蛇(双人对战版)
前言 这是我在多年前初学jquery, 并结合javascript, 编写的一个小游戏.那洋洋洒洒几千行的js代码时刻提醒着我"不忘初心!". 效果演示 代码 引入文件 由于用到了 ...
- 原生JavaScript抒写——贪吃蛇小游戏
原生JavaScript抒写--贪吃蛇小游戏 文章目录 原生JavaScript抒写--贪吃蛇小游戏 前言 一.需求分析 二.效果展示 三.具体逻辑代码分析 1.首先创建一个html文件,然后我们利用 ...
- html像素小鸟小游戏,微信小游戏-像素鸟游戏
we_flappybird ##注意: 微信小程序绘图API中drawImage不支持图片裁剪,其实微信是支持裁剪的只是接口没有实现,可以通过修改WAService.js使其支持裁剪. 修改如下: / ...
最新文章
- 成功解决Could not import the PyAudio C module ‘_portaudio‘.
- Linux下如何同时启动多个Tomcat服务器
- Ubuntu添加开机自动启动程序的方法 / 修改 Ubuntu 启动顺序
- openmv探索_3_测距以及测量物体大小
- Kubernetes详解(二十)——ReplicaSet控制器
- pyQT5 designer5.15.0的汉化问题,如何解决
- 指向Member Function的指针
- java计算机毕业设计高校贫困生信息管理系统源码+mysql数据库+系统+lw文档+部署
- Java-断点下载(分片下载)
- Photoshopnbsp;CS4基础视频教程:通道与…
- 低通滤波器的一阶RC电路模型
- Autojs: 坚果云文本文件上传/下载
- AcWing 838.堆排序
- echarts-liquidfill 水滴图/水位图/水球 下载地址
- EXPDP、IMPDP规范及常用技巧总结
- 基于局部平面拟合的法向估计
- 【数学建模】数学建模(一)——数学模型概述
- eNSP配置PC路由
- Haskell语言学习笔记(73)Existentials
- 城市防汛应急管理智慧:可视化平台之气象预警
热门文章
- java 读取clob字段的几种方法
- php hbase thrift,php通过thrift操作hbase
- struts2中的addActionError addFieldError addActionMessage的方法
- mysql插入数据显示:Incorrect datetime value: '0000-00-00 00:00:00'
- HDU4565(SummerTrainingDay05-C 矩阵快速幂)
- 2 分支语句——《Swift3.0 从入门到出家》
- Oracle数据库中序列用法讲解(转)
- An Add-in Bookmark for visual studio 2005
- 解决Eclipse开发工具Debug调试JDK源码无法查看变量值
- MongoDB安装、配置与示例