SKAction的run方法如何带参数?

3
我试图运行SKAction *action = [SKAction performSelector:(SEL) onTarget:(id)];并传入一个带有一个参数的方法作为选择器。然而,XCode只允许我放入performSelector:@selector(placeCoin:)但是它不允许我在选择器中传递一个CGPoint参数。我该怎么办?我真的需要使用SKAction runBlock语句来运行它吗?似乎应该有一种方法来解决这个问题...
2个回答

1
这个问题有点老,但我找到了一个简单的方法来实现它。
首先创建你的动作(在我的情况下,我需要一个不断重复的动作):
-(void)MyAction
{
   SKAction *wait = [SKAction waitForDuration: 0.01];
   SKAction *performSelector = [SKAction performSelector:@selector(myMethod1) onTarget:self];
   SKAction *sequence = [SKAction sequence:@[performSelector, wait]];
   SKAction *repeat = [SKAction repeatActionForever: sequence];
}

然后创建myMethod1并使用参数运行所需的方法:

-(void)myMethod1
{
  [self myMethod2Arg1:something1 Arg2:something2 Arg3:something3];
}

现在,您只需要在任何事物上运行操作,并激活带有参数的方法。

1
据我所知,在SpriteKit中,您无法使用performSelector:onTarget:传递任何参数。使用块是更好的选择。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接