首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么时候使用CCScene与CCLayer?

什么时候使用CCScene与CCLayer?
EN

Stack Overflow用户
提问于 2012-08-11 12:54:40
回答 2查看 1.6K关注 0票数 0

我在某种程度上是一个UI爱好者--我游戏中的每一个“屏幕”都应该在它出现或消失时转换进/出。因为我的游戏在资源方面很简单,我想我应该让每个“屏幕”都有一个CCLayer,并为转换定义一个函数,把所有东西都留在内存中。结果比我预想的要复杂得多。

我想我现在有两个主要的问题:

1)每个“屏幕”都是一个CCLayer。这看起来很好,但我似乎不能停止接收触摸事件,即使它们是不活动的。子精灵似乎不尊重isTouchEnabled属性,所以我一直在点击看不见的按钮。

2)我写了一个自定义按钮类,它基本上是一个sprite,带有几个独立的状态纹理。它使用CCTargetedTouchDelegate协议。我认为这是上述问题的一大部分。

我对CCMenu的事情不是很清楚。有没有教程或文档可以更好地解释它的设计目的以及如何使用它?cocos2d的文档根本没有讨论每个类做什么,这使得正确使用这个库变得非常非常困难。另外,什么时候我应该使用场景而不是层?我可以编写自定义转换吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-18 05:45:03

在菜单中使用CCScenes更加方便。非活动CCScene的所有子对象都不会收到触摸事件,因此您不必管理该行为。CCScenes也有内置的过渡,比如交叉淡入淡出,但如果你像我一样,你可能只想运行一个动作来使场景过渡出来,然后调用CCDirector:replaceScene。

票数 0
EN

Stack Overflow用户

发布于 2012-08-11 23:08:52

我发现,如果你在一个场景中有多个层用于菜单,比如主菜单(用一个层来加载游戏、新游戏等比整个场景更简单),如果你添加所有的按钮作为该层的子级;然后为了阻止它们接收触摸,只需在不使用时将该层移出屏幕即可。这里有一个例子。

代码语言:javascript
复制
[loadLayer setPosition:CGPointMake(-1000,-1000)];
[settingsLayer setPosition:CGPointMake(-1000,-1000)];
[menuLayer setPosition:CGPointMake(0,0)];

每次你选择一个按钮,这会让你说加载游戏层只需要为正确的层反转它。

代码语言:javascript
复制
[loadLayer setPosition:CGPointMake(0,0)];
[settingsLayer setPosition:CGPointMake(-1000,-1000)];
[menuLayer setPosition:CGPointMake(-1000,-1000)];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11912015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档