叨叨

  我在前一阵子,打算做一个微信小游戏,当然是单机的,只是为了了解小游戏开发的过程,最终选择了俄罗斯方块这一经典小游戏作为demo,源代码已托管值github,当然,这个游戏demo对用不并不友好,但是已经可以让我入门小程序开发了XD。

  demo地址:https://github.com/nbclw/Laya_Brick

准备

  在任何开发前都需要对要开发的东西有一定的了解、准备;

  小游戏原理:微信小游戏是属于H5游戏的一种吧,我是这样理解的;在H5中,有一个叫Canvas(画布)的存在,与电脑的画布很类似,后面的新颜色覆盖旧的颜色,旧的颜色也不进行记录;但是游戏可以有FPS这一概念的存在,比如我们可以使用程序每秒钟绘制50帧的Canvas(画布),也就是FPS是50,那么游戏的各种画面就可以动了;然而小游戏也有一定的限制,比如最终的游戏包(代码+资源)不可超过4M,当然也可以通过分包加载的方式加载游戏,那也最多不可超过8M;

  账号:在开发微信小程序之前,需要到微信公众平台申请一个开发账号,如果只是学习的话,申请一个个人账号也完全ok;申请完成之后,在设置-开发设置里有一个AppID的标识,这个在新建项目时需要用到;另外,平台里也给了很多文档、API供学习查阅;

  开发工具:工具的话微信也给出了专门的开发工具,在微信公众平台即可下载到;

  游戏引擎:无论什么开发,总会有一些方便的集成工具供大家使用,人多力量大;这里我选择的是的LayaBox的游戏引擎,所以,在开发的时候需要再下载一个LayaIDE的开发工具,在这里面编写游戏和发布,最后再在专门的微信开发工具进行最后的调试与上传;

  语言选择:使用LayaIDE来开发小游戏的话,它支持三种语言:ActionScript、JavaScript、TypeScript;首先是ActionScript,我对这个语言没接触过,并且和剩下的两种语言相比,只多了能做flash游戏,我又不懂flash游戏,所以先pass掉;JavaScript语言的话还是比较熟悉的,但是由于是一种弱语言,虽说最近出了很多补偿措施,但是我没有多少时间来做尝试,所以先做保留;最后是TypeScript,这个语言据说是JavaScript的超集,同时具备了类、变量等一些静态语言的特性,是我接手的最佳语言;于是随后选择了使用TypeScript来开发小游戏;补充一下,demo里面包含一分TypeScript的简单的学习文档,可以先大体阅读一遍,相信会有点帮助的;

  环境搭建

    1、去微信公众平台申请微信公众平台账号,下载安装 微信web开发者工具;

    2、去LayaBox下载LayaIDE开发工具,根据教程配置TypeScript的编译环境,在官网的技术文档TypeScript专题有教程,此处不过多累述;

开始开发

  其实在使用 微信web开发者工具 开发时,会有一个模板游戏当然也可以根据其架构和API来开发小游戏,但是由于我功力达不到,开发过一版游戏(使用JavaScript),调试运行可以,但是到手机上就不可以了,我也就不过多纠结,直接转入LayaIDE开发,毕竟官网有更多的案例和API,后面的开发除非特殊情况,说的都是LayaIDE开发;

  1、新建项目,这里我们选择2d项目与TypeScript项目,由于小程序的游戏包的大小限制,在我掌握控制资源大小能力的时候,我选择了较为简单的2d项目

  2、项目结构:1为项目的入口文件,相当于Main文件,至于为什么是入口文件,下面会提到;2为引用的代码资源,里面封装了2d项目必要的封装类;3为项目的场景资源文件,包括音频、视频、图片等游戏需要的资源;

  3、bin文件夹:此文件夹是编译之后运行的文件夹,比较重要,下面来做详细介绍;

    事实上,虽然我们在使用TypeScript开发小游戏,但是最后还是会编译为JavaScript文件,通过执行JavaScript文件来运行小游戏,只是使用TypeScript会比JavaScript开发的更加严谨一些,若你的JavaScript很强,那么也可尝试使用JavaScript来编写;

    里面的js文件为上面项目结构中的libs编译的结果,将里面各个封装好的模块编译到各个文件中

    里面的js文件为上面项目结构中的src编译的结果,将各自ts文件编译到对应的js中;

    该文件作为微信小游戏的执行文件,在这里可以不过多理会;

    这个为发布后的微信小程序引用了多少js文件(编译好的libs与js中的文件)用的,若是在程序中没有用到的模块,可以再这里面进行删除,以减少代码的数量

  4、项目编写:项目的大体结构与编译了解的差不多之后,便开始编写我们自己的小程序——俄罗斯方块了,开发过程略,反正就是api的使用,这个在官网有这不少的案例与代码;

    首先将以前的代码、资源文件删除掉,然后建立自己的工程,在发布之前,我将index.html文件中没有使用的js引用注释掉

    

  5、发布,选择发布平台,先来个简单的发布吧,不包含版本控制之类的;发布之后,我们会得到一些文件,其实libs这个文件夹并没有多少用的,虽说里面有编译之后的封装文件,但是项目实际运行的所有代码都被LayaIDE自动压缩到code.js文件中,因此,libs文件夹可以删掉,为了减少游戏包体积嘛;还有一个不怎么好的消息,那就是,上面我说的资源文件夹assets是没有被发布出来的,我也没弄清楚怎么回事,只能手动拷贝出来,并且找到code.js文件中的引用路径并修改正确;

    

  6、微信web开发者工具最后的调试,打开开发者工具,打开项目,输入我们的AppID,打开LayaIDE发布出来的项目;若模拟器可以正常运行的话,那么久点击预览吧,就可以在手机上面看到了,手机预览没问题的话,就可以点击上传上传到微信公众平台上去;

  7、到此为止的开发都是只有自己能够看到的,若想让别人玩到自己的游戏,那么还需要最后一步,在微信公众平台-开发管理中,将自己刚刚上传的项目发布出来,当然真正的发布游戏是要提交审核的,有很多的东西(各种资料)要准备,我就选择了体验版,只能规定自己指定的人玩,不过也够了,反正别人也玩到了嘛,等到有真正好玩的游戏做出来,在认认真真的发布吧;

再次叨叨

  下一步目标:

  1、学会使用分包加载游戏,更大的游戏包带来更好的游戏(虽说最多8M);

  2、学会使用网络,下一步打算做简单的网络游戏;

  3、学会优化代码,去除不必要的资源,精简游戏包大小;

  好不容易做使用LayaBox做的俄罗斯方块可以运行了,尽管游戏功能少,尽管发布到微信公众平台上只是一个体验版,只能指定少数人玩耍(话说也没几个人在玩这游戏了),但是除最后一步的提交审核,别的流程都走了一遍了,总算可以从0到1制作一个微信小游戏了,好开心,在这里把这些日子学到的东西分享出来,希望有人可以用得到,这里就结束了。

转载于:https://www.cnblogs.com/nbclw/p/9524837.html

【开发记录】微信小游戏开发入门——俄罗斯方块相关推荐

  1. 微信小游戏开发入门:示例代码介绍

    什么是微信小游戏? 看前几天的科技新闻,微信中的"跳一跳"小游戏从去年12月发布,截至到今年3月份已经积累了3.9亿玩家,这是一个多么恐怖的数字,"跳一跳"游戏 ...

  2. 微信小游戏开发学习记录2

    接上一篇:微信小游戏开发学习记录_寂静流年韶华舞的博客-CSDN博客_微信小游戏开发学习 目录 一.UI系统 1.基础渲染组件-精灵组件 (1)操作: (2)Sprite 属性 (3)渲染模式 2.L ...

  3. 微信小游戏开发实战教程系列开启

    **这是小蚂蚁游戏开发公众号原创的第35篇. 在写完了"人人都能做游戏"的新手系列教程后,我收到了不少反馈.有人告诉我,因为看了我的系列教程做出了自己人生的第一个小游戏.也有人告诉 ...

  4. 动态加载子节点_微信小游戏开发之场景切换和常驻节点传递数据

    主题 场景切换 场景间数据传递方式 小游戏全局背景音效 特别说明 CocosCreator微信小游戏开发系列文章,是我在逐步开发过程中,基于官方文档之上,记录一些重点内容,以及对官方文档中有些知识点的 ...

  5. 微信小游戏开发实战教程15-关卡编辑器的制作以及关卡分享功能的实现

    微信小游戏开发实战系列的第15篇. 本节主要内容有游戏中的关卡编辑器的实现思路以及如何利用分享功能将自己制作的关卡与好友分享. 如果你没有任何的游戏开发经验,欢迎阅读我的"人人都能做游戏&q ...

  6. 微信小游戏开发实战教程2-使用表格处理数据

    **这是小蚂蚁游戏开发公众号原创的第36篇. 本篇内容包括微信小游戏开发工具中的表格的使用.重点学习表格中的数据的设置,遍历和查找操作,以及如何使用"调试场景"来验证游戏中的逻辑是 ...

  7. 微信小游戏开发实战教程8-消除处理

    这是小蚂蚁游戏开发公众号原创的第42篇,微信小游戏开发实战系列的第8篇,点击上方的#微信小游戏开发实战话题可以查看本系列的所有内容. 本篇主要内容包括如何对网格上满足消除条件的方块进行消除处理. 如果 ...

  8. 搭建微信小游戏开发环境总结

    这篇文章主要解决以下问题 1.一键申请泛域名证书并到期自动更新 2.Nginx配置https 3.本地资源映射到外网 4.介绍CocosCreator构建发布微信小游戏时远程服务器地址如何配置 文章目 ...

  9. 微信小游戏开发实战教程14-闯关模式的实现

    这是微信小游戏开发实战系列的第14篇. 本文主要内容是介绍精致1010闯关模式的设计和实现思路. 如果你没有任何的游戏开发经验,欢迎阅读我的"人人都能做游戏"系列教程,它会手把手的 ...

  10. 微信小游戏开发实战教程11-使用本地缓存

    这是微信小游戏开发实战系列的第11篇. 本节主要内容:使用本地缓存来记录玩家的设置以及各种类型数据的本地缓存和读取操作. 如果你没有任何的游戏开发经验,欢迎阅读我的"人人都能做游戏" ...

最新文章

  1. npm如何删除node_modules文件夹
  2. jquery ajax异步和同步从后天取值
  3. LeetCode 102二叉树的层序遍历103二叉树锯齿形遍历104二叉树的最大深度
  4. 对象的克隆(clone方法)
  5. SSL延迟有多大 (Https)
  6. html选中后当前变色,JS代码实现表格选中后变色操作有哪些代码?
  7. 产品经理必懂技术术语(前端类)
  8. 为何大数据分析那么重要
  9. 接口测试工具——postman
  10. gamma软件linux安装图示,[转载]linux下安装GAMMA软件
  11. 《调试软件》作者主页
  12. 未能加载文件或程序集“Microsoft.Office.Interop.Excel, Version=11.0.0.0, Culture=neutral
  13. 使用 Java 操作 Kubernetes API
  14. 手机微信桌面计算机不见了怎么办,微信桌面图标不见了怎么办
  15. 爬虫基础-----1.python基础
  16. 2022年最新遥感类期刊JCR影响因子及分区
  17. 代码段+数据段+bss段+stack+heap
  18. 写程序电脑常用快捷键
  19. 深入理解 WIN32 PE 文件格式
  20. MVC框架实现分页功能

热门文章

  1. 如果用计算机计算带有大括弧的数学题,紧急需要带有大括号,小括号,中括号的脱式计算题目...
  2. 企业发展必经之路APP的转型大数据对消费者的跟踪
  3. 达梦数据库安装(CentOS7版)
  4. 迅雷大全官方免费下载【互联网影视资源聚合平台】
  5. 【MybBatis细节篇】MyBatis中#{}和${}的区别
  6. 手绘线条一直画不直_手绘板线条画不直怎么办?板绘画线诀窍分享
  7. java微波炉程序代码,单片机微波炉控制系统仿真与源程序
  8. 【Python】素人万字总结,PyCharm2022.2专业版提升开发效率基本设置及常用快捷键(超实用) Python基本知识一一CSDN21天学习挑战赛
  9. 小程序自动测试框架——Minium(一、环境搭建)
  10. Odoo14如何开启debug模式?