Cocos Creator的核心是组件化,如何编写出高质量的组件代码值得程序员们不断探索,Shawn今天分享一点组件编码的心得供大家参考:“怎样才是一个合格的组件?”。
Shawn在2年的Cocos Creator项目经验和案例中总结了两条组件编码问题:
上面两个问题带来的后果是:组件与组件、组件与外部节点、组件与资源、组件与场景树结构形成高度耦合,如下图所示:
组件与外部对象产生了千线万缕的关系,这样的设计让组件、界面都完全动弹不得,完全背离了组件化开发的本质,陷入了高度耦合的泥沼之中。
怎样才算是一个合格的组件?
这个问题困扰Shawn很长一段时间,其实答案近在眼前,那就是:模仿Cocos Creator内置组件,以引擎内置组件为参考标准。
Cocos Creator的内置组件绝大部分都是可通用的,可以挂载到任意节点,这里简单总结三点:
有了好的参考的标准,就有了行动的指南针,接下来看内置组件给我们的启发。
之前Shawn的教程中就提到,组件分为两类:神器与结界。随着教程的不断升级,Shawn也在思考使用更为贴切的用词,庆幸得到引擎组大神们的帮助,规范用词,将两类组件定义为:功能型组件与控制型组件,请看下图:
在编写自定组件时,需要明确我们是要提供什么类型的组件去解决问题,比如我们教程Demo中的:节点ZIndex控制、节点可拖动、点击节点切换图片,它们都是功能型组件,通常是一个纯组件脚本文件。
在项目中,例如我们做的提示对话框、玩家头像、商品道具,它们通常是由背景、前景、图片、边框、文字等等节点构成,我们就需要为它们定制各自的控制组件。
功能型组件解决“点”上的问题,控制型组件解决“线”、“面”上的问题,它们之间又可以相互嵌套、组合从而解决“体”上的问题。
本篇教程主要是分享Shanw在组件编程中发现的问题,思考“怎样才是一个合格的组件?”。探索编写合格组件的指导思想,总结了功能型与控制型两类组件模型,供大家参考。
下一次我们再继续这个话题,如何去编写简单易用、复用性强、易于测试的组件,具体说明功能型和控制型组件的编码心得。
编写高质量的组件的目的是为了提高开发效率和产品质量,在这条道路上任重道远,大家一起努、加油!
本文分享自 Creator星球游戏开发社区 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!