实际上,有很多官方文档,如果您有兴趣,可以查看官方API文档。
迷你游戏的模块化
迷你游戏提供了CommonJS样式模块API。您可以通过module.exports和export导出模块,并通过require导入模块。这里无需赘述,实际上,您可以按照正常的编码习惯进行编码。
module.exports = function (canvas, x, y) { var image = new Image() image.onload = function () { var context = canvas.getContext('2d') context.drawImage(image, x, y) } image.src = 'res/image/logo.png'}
因此迷你游戏对基本的编码功能仍然非常友好。
小游戏能力
此处列出了部分已提供的API功能。有关更详细的功能和官方示例,请访问API文档。
小型游戏引擎
游戏引擎是指某些编程的可编辑计算机游戏系统或某些交互式实时图像应用程序的核心组件。这些系统为游戏设计人员提供了编写游戏所需的各种工具,其目的是使游戏设计人员能够轻松快速地制作游戏程序,而无需从头开始。
Cocos,Egret和Laya已完成了其引擎和迷你游戏工具的改编和支持:
Three.js是在浏览器中运行的3D引擎。您可以使用它来创建各种3D场景,包括各种对象,例如相机,灯光和阴影以及材质。
2D,3D,VR支持
性能
根据开发人员的反馈,Layabox最初是用于大型游戏的H5游戏引擎,其性能优势毋庸置疑。
设计概念和定位
工作流程支持强度
工具链的提供和支持也是一个选择考虑因素,例如UI编辑器,粒子编辑器,骨骼编辑器,场景编辑器等。如果引擎直接提供或支持它,则将大大提高研发效率。白鹭,Layabox和Cocos2d-JS这三个引擎为工具链提供了充分而全面的支持。
引擎的应用范围
白鹭较早出名,开发速度更快,在各个方面拥有更多资源,并提供了一整套开发流程工具。
使用游戏引擎的优势:快速开发和高度可维护性
使用游戏引擎的缺点:牺牲一些性能,没有引擎的小型游戏在性能上几乎没有区别。为了提高大型游戏的效率和可维护性,通常使用游戏引擎。
小游戏实战总结
这一次的主要认识是跳跃游戏。游戏大致如下:
级别划分
场景层:负责两侧叶子装饰的渲染,并实现其无限循环滑动的动画效果;
楼梯:负责楼梯和机器人的渲染,实现楼梯的随机生成以及对下降的楼梯和机器人的自动控制;
背景层:负责背景颜色的渲染以及开始和结束面板的渲染。
通过调用requestAnimationFrame一定数量的循环来实现动画效果。游戏的逻辑是通过监视全局画布对象来实现的。
按顺序分层叠加在画布上,首先绘制背景,通过算法计算步骤的位置,将先前位置与requestAnimationFrame结合起来以实现位移以生成新步骤,将机器人分别拉出,没有台阶,可以通过位置计算一起实现,获得机器人的位置,在台阶上绘制字符,最后在顶层绘制叶子。
小游戏开发中的困难
首先,小型游戏是使用JavaScript语言开发的,没有HTML,CSS,因此您需要精通JavaScript语言和Canvas对象操作。
其次,它与H5版本的游戏开发并没有太大区别,但是小型游戏支持的库较少,并且不支持H5版本开发中使用的大多数库。
此外,还有更多的选项可用于实施H5版本的游戏。例如,“跳转一次跳转”的原始版本是使用createjs开发的,而小型游戏版本并不支持所有引擎,只能通过上述引擎修改进行修改。
迷你游戏优化
为什么要优化?实际上,为了提高页面加载速度,减少游戏运行时的滞后,并使动画看起来更流畅,游戏和屏幕的流畅性直接影响用户体验。
下面提供了几个优化选项。
GC优化
迷你游戏的优化文档没有指出api中提供了性能管理器。通过获取性能管理器,可以调用API以加快GC的触发速度。 GC的计时由JavaScrpitCore / V8控制,不能保证在调用GC之后立即触发。
优化对setData的调用次数
在小程序上,官方不建议经常调用setData。大图片和长列表图片可能会导致iOS客户端的内存使用增加,并触发系统回收小程序页面。
减少代码包
尽可能减小代码包的大小。该代码包直接影响下载速度,从而影响用户的首次打开体验。
控制图片资源
控制代码包中的图片资源。编译小程序代码包后,会将其放在微信的CDN上,以供用户下载。 CDN启用了GZIP压缩,因此用户下载了压缩的GZIP软件包。该大小将小于代码包的原始体积。但是我们分析了数据,发现不同的小程序之间的代码包压缩率差异也很大,有的可以达到30%,有的只有80%。造成这种差异的一个原因是图像资源的使用。 GZIP对基于文本的资源具有最佳的压缩效果。压缩大文件时,通常可以达到70%-80%的压缩率,同时对压缩资源(例如大多数图像格式)有很好的效果。微。
清除无用的资源
及时清理未使用的代码和资源。 小程序打包会将项目下的所有文件放入代码包中,也就是说,这些未实际使用的库文件和资源也将被破坏到代码包中,从而影响整个代码包的大小。
fps调整
使用requestAnimationFrame实施动画时,请调整为适当的渲染fps(帧速率)。
图像尺寸是否有问题?
迷你游戏中图片的大小限制为2048像素,长度和宽度必须小于或等于2048像素。
向外界开放吗?
没有开放的迷你游戏注册条目。现在,我们可以使用两天前在小程序中打开的游戏类别。将小程序设置为游戏类别以开发迷你游戏。我不确定是否会在将来。以这种方式注册,或者单独打开迷你游戏的注册入口,两者没有区别。
官方网站目前不提供外部版本。登录后台后,可以单击释放,但是您需要上传一系列软件版权证书。
关于迷你游戏的代码大小?
关于迷你游戏的大小,迷你游戏的大小不应大于4M,并且缓存的大小不应大于50M。
具体解释是:本地代码和资源不得超过4M。单个迷你游戏项目的缓存文件不能超过50M。目前,当缓存超过50M时,后续资源将不会被缓存。将来,新版本的AssetsManager将允许开发人员自定义需要缓存的资源。不允许从服务器下载脚本文件。
不允许执行动态代码吗?
不允许动态执行代码。 eval,setTimeout和setInterval的第一个参数不能为字符串,并且Function构造函数的参数不能为字符串。