是否可以在单个 CCNode 对象上安排多个选择器或更新回调

Posted

技术标签:

【中文标题】是否可以在单个 CCNode 对象上安排多个选择器或更新回调【英文标题】:Is it possible to schedule multiple selectors or update callbacks on single CCNode object 【发布时间】:2013-07-04 21:20:45 【问题描述】:

我正在使用 cocos2d 2.0

在我的图层类中,我正在调度一个方法

[self schedule:@selector(myMethod:) ];

然后在同一层我调度另一个这样的方法

[[self scheduler]scheduleSelector:@selector(mySecondMethod) forTarget:self interval:enemySpawnSpeed paused:NO];

当我运行代码时,它显示“CCScheduler.尝试使用与目标不同的暂停值来安排选择器'

当我评论这些行中的任何一行时,我的项目运行正常并且没有错误。用同一个节点调度多个选择器是不可能的吗?还是我在这里做错了什么?

阅读指南http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:draw_update 后我不确定,但我认为我们只能为每个节点安排一个选择器

【问题讨论】:

你为什么要使用 [self scheduler]? 是的,您可以安排多个选择器。您是否在调度程序 getter 中返回 [CCDirector Scheduler] 【参考方案1】:

当然,这行得通:

[self scheduleSelector:@selector(myMethod:)];
[self scheduleSelector:@selector(mySecondMethod:)];

您的 mySecondMethod 选择器末尾缺少一个冒号。您得到的错误与暂停标志有关,您应该使用 self.paused 而不是使用 NO 来确保选择器的暂停状态与目标的相同。

另外,第二行很奇怪,您是否尝试在课堂外安排更新?如果是这样,只需向层对象(即scheduleMySecondMethod)发送消息,然后调度选择器。

【讨论】:

如果我在层的 init 方法中编码,我不应该向它的调度程序属性发送消息吗?这就是我在第二行所做的。并感谢您讲述 self.paused 而不是 NO 它有所帮助。 每个节点类都有 [self schedule*..] 方法,请参阅:learn-cocos2d.com/api-ref/KoboldTouch/latest/cocos2d-iphone/… 您在第一个示例中使用正确,没有理由使用调度程序,“调度程序”也不是标准属性节点数。

以上是关于是否可以在单个 CCNode 对象上安排多个选择器或更新回调的主要内容,如果未能解决你的问题,请参考以下文章

当单个表单中有多个下拉字段时,如何在 JQuery 中为选择标记引用选择器?

jQuery学习笔记:this相关问题及选择器

jQuery学习笔记:this相关问题及选择器

iOS:具有单个选择器的多个 UIMenuItem

是否可以一次通过多个视图渲染对象

Gson:将多个json对象映射到单个对象