是否可以在单个 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 对象上安排多个选择器或更新回调的主要内容,如果未能解决你的问题,请参考以下文章