cocos2dx ui编辑器生成界面的管理

cocos2dx ui编辑器生成界面的管理,第1张

概述        说这个问题之前,先说不用各种UI编辑器的时候,开发一个界面的样子。         比如我们要做这样一个界面(图片素材来自百度图片,侵权不怪我。。。)         我们应该肿么处理这个界面,为了代码好看,可以复用等原因,显然是应该分层分组件,就像这样。         然后我们开始编辑代码,分3个layer,每个layer里面加各种按钮,写上各种触发函数。然后其他地方要用,只需

说这个问题之前,先说不用各种UI编辑器的时候,开发一个界面的样子。

比如我们要做这样一个界面(图片素材来自百度图片,侵权不怪我。。。)


我们应该肿么处理这个界面,为了代码好看,可以复用等原因,显然是应该分层分组件,就像这样。

然后我们开始编辑代码,分3个layer,每个layer里面加各种按钮,写上各种触发函数。然后其他地方要用,只需要实例化一个对象,addchild就可以了。


但是我们现在有了UI编辑器,比如cocosstudio,在编辑器里面,还是按照上面的步骤,编辑3个UI,一个是头像那一块headNode,一个是下面的菜单栏menuNode,然后再做一个层bgLayer,把2个node加上来。现在就有了3个界面布局文件。

然后程序里面读入。问题来了,这几个布局文件,读入进来,自己就是一个node,我们不能往里面添加代码。

仍然是为了上面的几个原因,现在有2种方法:

1、把每个node单独做到一个父node上面,通过这个父节点,对node里面的东西进行管理。

优点:直观,因为父节点也是一个node,可以直接进行node的添加删除变换等 *** 作,传参方便,理解方便

缺点:多出一层,组件多的话,就会多出很多层。我有心理洁癖。还有一个重要缺点,后面说

2、做一个controller,对这个node进行管理。

优点:不会有方法1的前半部分缺点,符合MVC思想

缺点:不直观不方便。我不喜欢。其实最外层的node就已经是controller了,你要说这样VC混了也好,不科学也好,但是他就是方便。等我层次再高一点体会到这样的缺点了再说。


方法1上面还有一个重要的缺点,就是如果我把菜单栏按方法1做了一个父节点。那对于整个布局文件bgLayer,上面的子空间的那个菜单栏,是没法复用这个代码的,我又只能在这个bgLayer的父控件上面,去又实现一遍这些方法。


暂时没想到其他方法,只有这2种。


都有利有弊,意思就是谈不妥了。然后我找到一个使用很有局限,但是能达到我目的的方法:

大体上采用方法2,做controller,但是这个controller只是一个加工厂,把这些实现函数,附加给node本身。

怎么实现呢?因为lua本来就能这么做。。。把node传进来,然后直接往传入的node上面扩展各种函数,然后返回原来那个node就行了。。。



脚本就是方便啊!!

总结

以上是内存溢出为你收集整理的cocos2dx ui编辑器生成界面的管理全部内容,希望文章能够帮你解决cocos2dx ui编辑器生成界面的管理所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1048564.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)