我想创建一堵增大尺寸的墙。但是当我增加尺寸时,物理体不会跟随(它保持相同的尺寸)。所以我有一个想法,一个永远重复的 SKAction 会执行一个选择器,根据对象的大小调整我的物理体的大小。
所以我想编写如下代码:
-(void) sizeChange:(SKSpriteNode *)sprite{
sprite.physicsbody = [SKPhysicsBody bodyWithRectangleOfSize: sprite.size];
}
现在我想运行一个 SKAction 来执行选择器。所以我写了这个:
SKAction *perform = [SKAction performSelector:@selector(sizeChange:) withObject: sprite onTarget: self];
[self runAction:[SKAction repeatActionForever:perform]];
SKAction 不能与“WithObject”一起使用。如何向 PerformSelector SKAction 添加参数?
谢谢!
编辑:
基本上我想要 SKAction 等价于:
[self performSelector:@selector(sizeChange:) withObject:sprite];
或者是一种永远重复之前的代码的方法。谢谢!
最佳答案
查看 SKAction
的 customActionWithDuration:actionBlock:
方法创建一个在一段时间内执行 block 的操作。您可以在操作 block 中指定自定义代码。
+ (SKAction *)customActionWithDuration:(NSTimeInterval)seconds
actionBlock:(void (^)(SKNode *node,
CGFloat elapsedTime))block
或者,您也可以使用runBlock:
方法。
SKAction* blockAction = [SKAction runBlock:^
{
// your code here
}];
[someNode runAction:blockAction];
关于ios - 使用执行选择器但带有参数创建 SKAction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24808686/