我正在尝试运行SKAction *action = [SKAction performSelector:(SEL) onTarget:(id)];
并传入一个选择器,这是一个接受一个参数的方法。但是,XCode只允许我输入performSelector:@selector(placeCoin:)
,但它不允许我使用选择器传递CGPoint参数。我该怎么做?我是否真的必须使用SKAction runBlock语句运行它?似乎应该有办法做到这一点..
答案 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];
}
现在,您需要做的就是对任何事情执行操作,并且带有参数的方法将启动。