cocos2d-x怎么改变不同类里面精灵之间的图层关系

比如CSkillManager类里用CCSprite声明了两个技能精灵,一个地上火焰陷阱(图层要求在玩家精灵下方),一个燃烧(图层要求在玩家上方)。玩家自己单独一个类。C... 比如CSkillManager 类里用CCSprite声明了两个技能精灵,一个地上火焰陷阱(图层要求在玩家精灵下方),一个燃烧(图层要求在玩家上方)。玩家自己单独一个类。CSkillManager 跟CPlayer类都被addChild在GameManager类里。求怎么达到图层要求? 展开
 我来答
神消浩哥
2013-05-23 · TA获得超过685个赞
知道小有建树答主
回答量:148
采纳率:0%
帮助的人:101万
展开全部
不要把技能的Sprite add到CSkillManager里面,而是直接add到GameManager里面这样你才能很好的控制特效和人物之间的遮挡关系。

否则技能CSkillManager如果是单键并且是一个Layer那么无论如何也达不到你想要的效果的。当然你也可以为CSkillManager建立两个Layer一个再上一个在下 这样根据需要把技能的Sprite添加到不同的层上。
斤斤宝贝0dE
推荐于2016-06-07 · TA获得超过2168个赞
知道小有建树答主
回答量:712
采纳率:0%
帮助的人:971万
展开全部
只有在同一个图层的节点才能有相对的层级关系哦,他们的父节点CSkillManager和CPlayer之间的层级关系通过zOder决定,比如CSkillManager的z值为2,CPlayer的z值为1的话,CSkillManager的所有子节点(技能)就都会在CSkillManager上方。你想要的效果是实现不了了呢。
CSkillManager还是只处理逻辑好了,技能特效往CPlayer上挂。简单说就是视图和数据计算分离,把技能也好,buff也好,头顶的血条也好,都放在同一个容器里管理,这样的层级关系才是正确的。MVC模式你说是吧。
追问
我现在把技能特效从CSkillManager独立出来,单独做两个类一个在图层玩家之上,一个在图层在玩家之下,技能碰撞判断再做一个类,CSkillManager就做一些图标和按键事件,也不知道这样对不对。你的容器我想是一个更不错的主意,回头我试一下。有问题再追问,哈。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式