带参数的SKAction运行方法?

时间:2014-08-16 19:32:05

标签: ios xcode sprite-kit

我正在尝试运行SKAction *action = [SKAction performSelector:(SEL) onTarget:(id)];并传入一个选择器,这是一个接受一个参数的方法。但是,XCode只允许我输入performSelector:@selector(placeCoin:),但它不允许我使用选择器传递CGPoint参数。我该怎么做?我是否真的必须使用SKAction runBlock语句运行它?似乎应该有办法做到这一点..

2 个答案:

答案 0 :(得分:1)

据我所知,你不能在SpriteKit中传递performSelector:onTarget:的任何参数。使用块是更好的方法。

答案 1 :(得分: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];
}

现在,您需要做的就是对任何事情执行操作,并且带有参数的方法将启动。