美文网首页Cocos CreatorCocos Creator
CreatorPrimer(13)|节点与组件

CreatorPrimer(13)|节点与组件

作者: 张晓衡 | 来源:发表于2018-09-10 20:18 被阅读34次

我们已经学习了有段时间的Cocos Creator组件开发了,组件化开发到底有是什么?Shawn这阵子思绪不断,同时将自己的理解应用于实际项目中,颇有心得,在这里做一个分享。

1. 理解节点与组件的关系

有经验的同学,一上手就能想到「装饰模式」,我们看下定义:

装饰模式(Decorator)动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。

再看一下装饰模式的基本UML类图结构 :

大话设计模式

注意,上图是我从《大话设计模式》中截取的,图中的Component在Cocos Creator对应的是NodeDecorator对应的是Cocos Creator中的Component

非程序员同学,看到这里可能会觉得比较懵,这里我简单解释一下「装饰模式」。既然其中有装饰二字,就应该有装饰品被装饰者,例如:例如:一个人穿上衣服、背上双肩包、 带上电脑和手机(哈哈!典型的Shanw平时的装扮)。

程序员背包

上图中的人就是被装饰者,衣服、双肩包都是装饰品。其中衣服、双肩包提供了渲染能力,美化外表,让Shawn可以正常地走在大街上;电脑赋予Shawn工作能力,比如写代码、写点教程,当然人走在大家街上你是看不到电脑的,因为对应的行为场景没有激活;手机上不时会收到其他人发来的消息或任务,形成与外部世界沟通的交互界面,提供的是UI交互能力。

当Shawn把《大话设计模式》这本书看懂了,并能真正运用了,《大话设计模式》这本书也就装饰了我,只不过从外表上是看不出来的,需要工作起来(代码运行起来)才能表现出来。说不定那天我又把之前的知识给忘记了,衣服、电脑、手机可能还会换,装饰品对装饰被者来说是动态变化的。

说了这么多,我对组件与节点关系的理解是:组件给节点赋能

组件为节点赋能

2. 程序员为美术、策划赋能

基于Cocos Creator这样的可视化引擎,组件代码有着巨大的意义。程序员开发出的组件代码不应该只是满足自己完成任务,而应该是为游戏设计师提供体验优良的工具,当然你在提供这些组件工具的同时,你的设计水平也在提高。

组件脚本就像是美术生产的图片、策划编写的文案一样,是游戏开发中的一项基础生产资料,游戏内容更多的是应该由游戏设计师去完成。

程序不仅仅是编写组件脚本,还应该向团队其他人员提供更多的帮助,比如:教他人使用Cocos Creator、教他人使用你编写的组件、编写项目辅助工具...。目的是用程序的知识、思维和工具,去装饰身边的人,给他们提供他们本身不具备的能力,这样才能更多地发挥程序员的价值。如果程序员平时没有察觉到开发体验(各种不爽),做出的产品也很难谈的上有用户体验。

3. 人与人之间组件化协作

可能大多数人认为上面的协作模式太过理想化了,确实如些,这么多年了,仅在最近Shawn才被幸运眷顾到,哈哈!Shanw服务的一家儿童教育公司,开发了一套H5教学互动课件。

沉与浮

demo视频地址:https://v.qq.com/x/page/x0781ab01ou.html

初期Shawn为美术人员进行了简单的Cocos Creator学习培训,制作了一个Demo,并对Demo的设计思路、组件用法、项目规范进行了说明。然后就把内容设计完全效给两名美术同学。没想到他们丰富的想像力,把我提供的组件脚本完成了之前从未想到过的功能,而且这两名美术同学才刚从大学毕业!

项目过程中,这两位美术同学不仅是美术用PhotoShop出图,还整理需求、编辑界面、编辑动画、实现需求;Shawn则在一边打酱油,写点教程,即时根据他们提出的功能点提供解决办法或组件代码。同时引导他们使用git来管理项目资源;引入任务管理系统梳理工作内容;部署内部自动化构建环境方便授课老师进行测试、磨课、教学等,协作的非常顺利。

站在团队基础上,为他人赋予能力,将自己当成装饰品做为组件,去装饰他人让节点充分发挥能力,进行人与人之间的组件化协作,这是我最近从Cocos Creator组件化开发收获的启发。

4. 小结

这一篇没讲多少Cocos Creator具体的技术细节,简单讲述了「装饰模式」的结构,同时推荐《大话设计模式》这本书。Shawn写教程的风格多少受到《大话设计模式》、《Head First》的影响。 后面Shanw通过Cocos Creator的组件化开发,若有所悟地将组件化应用到人与人之间的协作,这是自己在开过程中的一点心得,希望对你也有所帮助。


欢迎关注「奎特尔星球」微信公众号,更期待您向公众号投稿,来我们一起成长!

奎特尔星球

相关文章

  • CreatorPrimer(13)|节点与组件

    我们已经学习了有段时间的Cocos Creator组件开发了,组件化开发到底有是什么?Shawn这阵子思绪不断,同...

  • CreatorPrimer|物理小游戏(碰撞事件监听)

    继续物理小游戏,我们先回顾一下CreatorPrimer仓库中提供的五个组件脚本: 使用这5个组件脚本,可以构建非...

  • CreatorPrimer教程源码&Creator工作流

    《组件与节点》一篇我们讲了,组件与节点的关系是: 组件为节点赋能 我们看一个组件赋予节点能力的例子: 观看视频:h...

  • Kubernetes如何运行pod的

    Kubernetes集群中主节点与工作节点的组件 1.主节点的组件 主节点包含以下4个组件。 (1)API服务器—...

  • CreatorPrimer(6)|AudioSource组件

    这篇教程我们介绍cc.AudioSource音频播放组件的使用,使用cc.AudioSource组件不用写任何一行...

  • CreatorPrimer|组件编码心得(下)

    这次是《组件编码心得》的最后一篇,第一次我们讲到将组件分为两大类:功能型和控制型;第二篇介绍了功能型组件与控制型组...

  • CreatorPrimer|组件编码心得(中)

    接上次教程中的内容,讲到功能型组件与控制型组件,这里再简单回顾一下他们的要点: 功能型组件:以装饰宿主节点为己任,...

  • CreatorPrimer|组件编码心得(上)

    Cocos Creator的核心是组件化,如何编写出高质量的组件代码值得程序员们不断探索,Shawn今天分享一点组...

  • 学习微信小程序(3)——组件

    一、自定义组件 1、组件模版和样式 组件模版组件模版的写法与页面模板相同。组件模版与组件数据结合后生成的节点树,将...

  • 自定义组件:模板和样式

    原文链接:组件模板和样式 组件模板 组件模板的写法与页面模板相同。组件模板与组件数据结合后生成的节点树,将被插入到...

网友评论

    本文标题:CreatorPrimer(13)|节点与组件

    本文链接:https://www.haomeiwen.com/subject/qkrlgftx.html