IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> js实现2048小游戏 -> 正文阅读

[游戏开发]js实现2048小游戏

2048小游戏

2048小游戏(带动画效果)
所用语言html、css、JavaScript
通过上下左右进行控制,实现了移动、合并等功能
github地址
线上测试地址

效果图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IuzlZ1zX-1629899426994)(./pic/1.png)]

实现功能

1.新建游戏

先清空方格和分数,再随机两个位置,生成2或者4数字

2.移动数字

移动包括:上、下、左、右
监控键盘事件keyCode
例如:用户向上时,从每一行开始遍历,当遍历到某个小方格有数字时,就判断它上方有没有其他数字,如果也有,就让他们合并,然后标记一下,因为一个方格只能合并一次。
其他方向类比。

3.新出现的方格动画

先克隆一个节点,然后让它出现在本体节点上,最开始把宽高都设定为0,用定时器把宽高慢慢恢复正常,再把它的值赋给本体节点,然后delete这个节点。

4.移动动画

核心也是用定时器,先克隆一个节点,让它模拟移动动画,然后再删除它。

不足之处

定时器因为js的轮循Event Loop机制,执行时间不确定,有可能造成资源浪费和丢帧现象,可以采用新出的requestAnimationFrame进行优化。

requestAnimationFrame

  • 1、requestAnimationFrame 会把每一帧中的所有DOM操作集中起来,在一次重绘或回流中就完成,并且重绘或回流的时间间隔紧紧跟随浏览器的刷新频率,一般来说,这个频率为每秒60帧。
  • 2、在隐藏或不可见的元素中,requestAnimationFrame将不会进行重绘或回流,这当然就意味着更少的的cpu,gpu和内存使用量。

下个版本会更改用到requestAnimationFrame

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-08-27 12:12:28  更:2021-08-27 12:13:10 
 
开发: 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年5日历 -2024/5/3 12:12:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码