gpt4 book ai didi

ios - 将变量传递给 SKScene

转载 作者:行者123 更新时间:2023-12-01 19:02:47 25 4
gpt4 key购买 nike

我正在尝试传递 SKTexture 的预加载数组s 来自我的 SpriteKit 场景的 UIViewController当它初始化时进入场景。

但是,我似乎无法自定义 SKScene 的初始化方法。传入一个数组。

这就是我想要做的:

@interface MyViewController ()

@property (nonatomic, strong) NSArray *texturePack;

@end

<>
- (void)viewWillLayoutSubviews
{
[super viewWillLayoutSubviews];

// Configure the view.
SKView * skView = (SKView *)self.spriteView;
if (!skView.scene) {
skView.showsFPS = YES;
skView.showsNodeCount = YES;

// Create and configure the scene.

// Pass variable?*

MyScene *scene = [MyScene initWithSize:skView.bounds.size];

scene.scaleMode = SKSceneScaleModeAspectFill;

// Present the scene.
[skView presentScene:scene];

}

}

* 我不确定如何在初始化之前将 self.texturePack 传递给场景?

如果有人对如何在初始化时将变量传递给 SKScene 有任何建议,我将不胜感激。

最佳答案

您必须在您的 SKScene 子类中公开声明该属性。

@interface MyScene : SKScene

@property (nonatomic, strong) NSArray *texturePack;

@end

然后,当您创建场景的实例时。为新声明的属性设置一个值。完成此操作后,您可以从场景实例中访问数组。
SKView * skView = (SKView *)self.spriteView;
if (!skView.scene) {
skView.showsFPS = YES;
skView.showsNodeCount = YES;

MyScene *scene = [MyScene initWithSize:skView.bounds.size];
[scene setTexturePack:someArrayReference];

scene.scaleMode = SKSceneScaleModeAspectFill;

// Present the scene.
[skView presentScene:scene];

}

编辑:您是否正在寻找将您的数组作为参数的自定义初始化方法?如果是这样,请将其添加到您的场景子类中,并在您的场景标题中为它进行公开声明。
- (instancetype)initWithSize:(CGSize)size andCustomParameter:(NSArray *)theArray {
self = [super initWithSize:size];

if (self) {
// do something with the array on iniitialization
}

return self;
}

关于ios - 将变量传递给 SKScene,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21760060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com