一放假整个人都像空了一样,我决定用两天来学习一个游戏引擎,不太清楚什么原因就选择了COCOS CREATOR,之前自己用纯JavaScript写过一些自己玩的小游戏,但是从来没有使用过游戏引擎,这次算是对游戏引擎有了一个大体上的理解。明天就回家了,写完这篇就收拾东西。
这个游戏的整体思路已经实现,但是细节、音效、UI等对于一款游戏来说非常重要的部分都还没有完成。对于我来说这个游戏的主要目标是学习COCOS,所以我还是比较满意,寒假抽时间应该会完善它的UI的音效部分。好的现在来谈一下我使用COCOS CREATOR的一些想法,以及碰到的坑。
以下均为个人观点。
1.文档及氛围
个人感觉COCOS CREATOR的文档及氛围都较好,我习惯边学边做,所以在上手COCOS CREATOR时没有先扫一遍官方文档,看了一下官方教程里面的吃星星案例就开始写自己的游戏了。在做的过程中碰到的各种问题,如如何播放音频、如何监听事件、如何使用射线检测碰撞都可以在官方文档中搜索到。但是就是因为我这样的学习模式,我在寻找使用射线碰撞检测时寻找到了解决方案,但是因为忽略了COCOS 世界坐标和节点坐标的区别,花费了大量时间。
2.使用观感
由于以前只是了解过UNITY组件的设计思想,并没有上手开发,同类产品的比较我无法拿出一个准确的答案。实际上COCOS CREATOR也是组件的设计思想,脚本(用户定义及自带的物理引擎,相机等)作为组件应用到node上,node是COCOS CREATOR的节点,预定义了position,rotation等在场景中的基础属性,组件可以为相机、按钮、文字等自带或者用户自定义的内容,当组件被赋予某个节点之后,这个节点就有了相应组件定义的功能。节点之间有包含关系,如按钮就是一个图片和文字的结合。在脚本中可以使用相应的属性获取父节点子节点,也可以在定义脚本属性时,添加相应的属性然后在COCOS CREATOR中拖拽引用。这样的设计模式让游戏开发更直观,开发者的逻辑也更加清晰。控件中的Layout,ScrollView等UI控件极大的减少了布局方面的开发量。最后关于物理引擎部分的内容,这个游戏我只用到了射线碰撞检测,效果不错。
记录完毕,收拾东西!