我有布尔参数BOOL isMoving。 我想在特定操作完成运行后将此参数设置为FALSE。 我的代码如下所示:
CCActionMoveTo* actionMove = [CCActionMoveTo actionWithDuration:1.0f position:[self GetPosition]];
CCActionCallBlock* blockUpdate = [CCActionCallBlock actionWithBlock:^{isMoving= FALSE;}];
CCActionCallFunc* actionCallFunction = [CCActionCallFunc actionWithTarget:nil selector:@selector(accessDelegate:)];
CCActionSequence* seq = [CCActionSequence actions:actionMove,blockUpdate,actionCallFunction, nil];
[self runAction:seq];
不幸的是,blockUpdate和actionCallFunction都没有等到actionMove完成。 请帮忙
答案 0 :(得分:1)
blockUpdate和actionCallFunction 执行等待actionMove完成您提供的代码。
我能提供的唯一解释是,移动到节点当前所在位置的移动操作将被忽略,因为节点“已经存在”。您对[self GetPosition]的使用似乎表明移动操作将节点移动到其当前位置:
CCActionMoveTo* actionMove = [CCActionMoveTo actionWithDuration:1.0f position:[self GetPosition]];
如果不是这种情况,请尝试使用CCActionDelay操作替换移动操作,等待n秒。