是否可以检查是否有行动,目前在cocos2d一个CCNode类运行?我想知道CCMoveBy
是否仍在运行。检查一个动作当前是否正在运行?
5
A
回答
1
您可以随时添加一个方法来指示何时结束该方法,然后切换某些BOOL或类似的东西,以表明它没有运行,并投入了启动方法来切换BOOL表明它开始:
id actionMove = [CCMoveTo actionWithDuration:actualDuration
position:ccp(-target.contentSize.width/2, actualY)];
id actionMoveDone = [CCCallFuncN actionWithTarget:self
selector:@selector(spriteMoveFinished:)];
id actionMoveStarted = [CCCallFuncN actionWithTarget:self
selector:@selector(spriteMoveStarted:)];
[target runAction:[CCSequence actions:actionMoveStarted, actionMove, actionMoveDone, nil]];
改性在两种@selector方法:
-(void) spriteMoveStarted:(id)sender {
ccMoveByIsRunning = YES;
}
和:
-(void) spriteMoveFinished:(id)sender {
ccMoveByIsRunning = NO;
}
其中ccmoveByIsRunning是我指的是BOOL。
编辑:正如xus指出的那样,您应该不会这样做,而应该使用其他人指出的[self numberOfRunningActions]
。
6
您可以在任何CCNode使用[self numberOfRunningActions]
。对你来说,这听起来像你想知道是否有任何简单的运行或不动作,所以它不是一个大问题,以知道确切的数字事前。
5
我们可以很容易地检查是否采取具体行动,通过使用getActionByTag方法和action.tag性能运行。 没有必要引进CCCallFuncN回调或计数numberOfRunningActions。
实施例。
在我们的应用程序中,重要的是让jumpAction在执行另一个跳转之前完成。为了防止已经运行的跳跃行动期间触发另一跳跃 代码的临界跳跃部分被保护为如下:
#define JUMP_ACTION_TAG 1001
-(void)jump {
// check if the action with tag JUMP_ACTION_TAG is running:
CCAction *action = [sprite getActionByTag:JUMP_ACTION_TAG];
if(!action) // if action is not running execute the section below:
{
// create jumpAction:
CCJumpBy *jumpAction = [CCJumpBy actionWithDuration:jumpDuration position:ccp(0,0) height:jumpHeight jumps:1];
// assign tag JUMP_ACTION_TAG to the jumpAction:
jumpAction.tag = JUMP_ACTION_TAG;
[sprite runAction:jumpAction]; // run the action
}
}
+0
感谢您使用这种检查方法来查看某个操作是否正在运行。我的成千上万行代码的应用程序有一个巨大的故障,最终由您的代码中的方法修复。谢谢。 –
相关问题
- 1. Python检查当前进程是否正在运行?
- 2. 如何检查SpeechRecognizer当前是否正在运行?
- 3. C#PropertyGrid - 检查一个值当前是否正在编辑
- 4. 检查当前行是否是一个数据行
- 5. 检查进程是否正在运行
- 6. 检查服务是否正在运行?
- 7. 检查程序是否正在运行
- 8. 如何检查是否Threading.Timer对象当前在Python运行
- 9. 检查一个Windows服务是否正在运行?
- 10. 如何在运行前检查vsprintf的参数是否正确
- 11. Scala检查外部进程ID(pid)当前是否正在运行?
- 12. 检查在运行时是否正在执行某个方法
- 13. 检测当前正在运行哪个活动?
- 14. 在运行一些Javascript之前检查DIV是否存在
- 15. 如何检查一个cron作业是否正在运行或不通过php?
- 16. 如何在运行之前检查XML文件是否正常运行simplexml_load_file()
- 17. jquery检测是否另一个div当前正在显示
- 18. 检查当前活动是否需要活动(同一父母)
- 19. 检查一些游戏是否正在运行,并在顶部
- 20. 自定义操作检查IE是否正在运行,然后关闭它当
- 21. 如何检查工作流是否正在运行(WF4)
- 22. 如何检查一个动作是否在Java中执行?
- 23. 启动条件 - 检查服务是否正在运行
- 24. 检查进程是否正在运行,如果不启动它
- 25. 如何检查活动是否正在运行或不
- 26. 在执行CRUD动作之前检查属性是否为真
- 27. PHP:如何检查一个文件当前是否正在写入
- 28. 是否可以手动运行一个logrotate检查?
- 29. 检查一个字符串是否是当前日期
- 30. tvOS检查当前是否聚焦ui元素是一个CollectionViewCell
这是一个丑陋劈,[自numberOfRunningActions]应该使用(如下面注释) – xus
@xus : 好点子。我的坏,我不能删除答案,因为他已经接受了,但我指出了我的错误,谢谢! – Dair