问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

CocosCreator初体验

发布网友 发布时间:2022-12-09 17:13

我来回答

1个回答

热心网友 时间:2023-05-13 02:02

机缘巧合,最近接到关于游戏的需求,前后调研了一下Unity3D和CocosCreator,但是考虑到是作为项目的一部分而使用,并且局限于Unity3D的使用条款,为了避免法律问题,最后选择的是使用CocosCreator来实现。第一次接触Unity3D和CocosCreator这类的游戏引擎,大约用了一个月的时间,从学习到项目大部分完成,之后要打包成静态库供其他客户端的同事们使用。学习途径主要是CocosCreator官网文档和官方Demo(看中文的文档就是爽!!!)。本片文章的目的主要是记录一下过程中遇到的问题及解决方案,并不是完整的教程。

本次要做的是一个最简单的跑酷类游戏,无需使用Tiled(地图编辑器),spine(骨骼动画编辑器)。也是做了这个小游戏才发现游戏其实已经发展的很成熟了。
我们可以看到,元素很简单,背景主要有远景、中景,通过设置不同的速度来实现现实中跑动的效果。主要的逻辑实现部分是在前景的任务和障碍物。由于没有使用物理引擎,所以是直接使用CocosCreator的碰撞检测实现的。主人公可以跳跃越过障碍物,撞开障碍物,收集金币。按住屏幕,hero跳起,按的时间长一些,主人公的跳跃也会高一些,自然一些的话还是需要简单的物理公式的。正常情况下hero是在x轴上是没有速度的,一种情况是当障碍物挡住hero时会有一个和障碍物同样的速度模拟阻挡的效果,还有一种情况是阻挡产生之后hero产生了位置上的移动,需要一个速度回到原位置。由于CocosCreator提供了碰撞检测之后的回调函数,所以我们可以很轻松的在回调中做一些相关操作,比如让碰到的金币消失之类的。

有位同事做过cocos2d-x的开发,使用的c++,向他请教了一些基础了知识,但是细节上跟cocosCreator相差恨远,因为cocosCreator是用cocos2d-js框架并配合可视化的编辑器来实现的。由于是先调研的Unity3D,对这种脚本的方式还是比较能够接受的。其核心思想是在组件,在编辑器中制作精灵和动画,然后通过脚本组件来控制其逻辑实现,各种功能都组件化,当我们需要给精灵添加一个功能的时候,就是向其添加一个组件。在这个小游戏的制作过程中用的组件的数量也是有限的,主要是使用了:

编辑器给我们提供了方便的拖拽界面,直接将我们需要使用的图片导入,就会自动生成精灵文件(但是用过Unity3D之后,还是感觉Unity3D的功能集成度更高一些,而且还可以做3D)。

在编写脚本的时候也是不能脱离编辑器的,在编写脚本的时候着实是让我这个ios程序员有点摸不到头脑了,JS的使用方式有点让我不太适应,没有了xcode的提示功能,写起来还是有些费劲的。JS也是边学边写,不过得益于官方的Demo几乎把所有组件都写了一遍,所以就照着葫芦画瓢。写的时候就发现,其实引擎并没有帮我们做很多的工作(Unity3D可以直接在编辑器里设置物理属性,不过听说下个版本的CocosCreator也会有)。在编写脚本的过程中,最复杂的就是hero脚本的编写,需要检测碰撞和处理hero跳跃过程中的不同状态。碰撞检测的话需要自己计算碰撞发生的位置,当做矩形碰撞器来处理的,只计算x轴和y轴的碰撞。x轴发生碰撞的话,hero有一个和障碍物一样的速度,y轴碰撞一直持续的话就是调整hero的y轴的位置,让其在障碍物的顶部。跳跃的过程中完成动画的切换。

与CocosCreator编辑器不同的是,这个编辑器是我写的一个生成障碍物的一个app,可以方便让产品配置障碍物的位置。主要的实现思路是使用UICollectionView,界面非常的简单,主要是配合CocosCreator脚本的实现,需要将颗粒状的障碍物连成一个长的条状,所以需要将界上的障碍物颗粒结构化一下,取到障碍物的最底部的颗粒的位置,然后连接在一起的高度,这样的话就是对每一列的统一种类的障碍物进行深度优先搜索,记录最低点和搜索过的深度,这样的生成的JSON文件在CoCosCreator脚本里就可以直接使用了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
时光公主高性价比氪金项目一览介绍_时光公主高性价比氪金项目一览是什么... 时光公主氪金买什么好介绍_时光公主氪金买什么好是什么 时光公主氪金买什么好 氪金钻石消费攻略 ch61u可以用gtx960显卡吗? 为什么路由器和机顶盒变成黄色网络连接不上 索尼WH-1000XM3耳机怎么通过蓝牙连接 索尼WH-1000XM3蓝牙连接手机教程... 葫芦岛市行政执法投诉办法第一章 总则 葫芦岛市价格调节基金管理办法第一章 总则 葫芦岛市政府信息公开暂行规定第一章 总则 葫芦岛市人民政府制发规范性文件规定第一章总则 什么是破壁机 破壁机介绍 家用破壁机有哪些选购技巧 给予作文600字 来分期可以协商还款吗 来分期可不可以协商还款 来分期逾期如何协商 淮安东站和火车站是一个站吗 300g巴斯克是几寸 鬼童丸缘结神(缘结神跟鬼童丸是一对) 阴阳师缘结神典藏送的吗 二胎准新生儿医保怎么办理的 双11交完定金后显示商品已下架怎么办? 苏州添可智能科技有限公司2022年双十一多少业绩 双十一的战绩是什么意思 workbench14.0瞬态动力学分析用的是哪种分析方法?是缩减法,完全法,模 ... Workbench如何导入txt数据?急用,详细步骤,动力学分析,我是用ADAMS仿真... Ansysworkbench显示动力学中的分析设置设为准静态后,如何设置 workbench对轴承的动力学分析 为什么搜题搜不到原题的答案 有一句歌词是我们俩变成最好的朋友男的唱的 双生幻想德古拉怎么获得 cocos creator 2.1 文本渲染分析。为什么创建Label性能差? Cocos Creator 实现画板和橡皮擦(有背景) Cocos Creator 最简易例子,场景切换,节点挂载脚本 Cocos Creator大量使用龙骨动画的性能优化 二个店用一个微信群的群名怎么取 求一个听起来比较有战斗力的群名 Win7开机蓝屏或提示登录进程初始化失败的解决办法 奔驰车油门和刹车的位置如何分布? 奔驰gla离合器和刹车位置 室内树木装修弄些什么好 室内植物装饰类型有哪些? 怎样设计室内组合盆栽 养生和保健的含义和做法 初级会计职称的考试大纲中的账务处理和核算有什么不同? 羊肾的形状,是什么样子的? 山羊腰子外面有肥肉吗? 羊肾子植物果子是什么样子 齐齐活鱼锅我现在是火锅店生意不太好我想加盟齐齐鱼锅可以吗? 谁能教我做鱼火锅. 《荀子·劝学》中“与之俱黑”的上几句