ios - 使用执行选择器但带有参数创建 SKAction

标签 ios objective-c sprite-kit skaction

我想创建一堵增大尺寸的墙。但是当我增加尺寸时,物理体不会跟随(它保持相同的尺寸)。所以我有一个想法,一个永远重复的 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];

或者是一种永远重复之前的代码的方法。谢谢!

最佳答案

查看 SKActioncustomActionWithDuration: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/

相关文章:

iphone - 使用 iPhone 相机

ios - 检测 ViewController ios 中哪个场景已启动

ios - 无法在 Swift 中使用 SpriteKit 多次初始化 GameScene

ios - 如何比 scrollviewdid 滚动更快地跟踪 uiscrollview 偏移量?

ios - 通过 Apple 的 ToDoList 应用程序教程,点击项目不会正确添加 "completed"复选标记。

swift - SKScene 的左下角坐标

ios - MvvmCross - 如何将 UIView.Layer.AnyProperty (Xamarin.iOS) 绑定(bind)到 View 模型上的属性?

ios - 修改常量值

ios - ARSCNView snapshot() 导致延迟

导航 View Controller 中的 IOS 图像选择器