0

所以我有我的主要观点,我可以做这样的事情:

player = [Hero spriteNodeWithImageNamed:@"player.png"];
player.position = CGPointMake(512, 384);
[self addChild:player];

这是在GameScene我的主要场景中完成的,它像这样加载到视图控制器中:

-(void) presentFirstScene
{   // create and present first scene
    GameScene* myScene = [GameScene sceneWithSize:self.view.bounds.size];
    [self.kkView presentScene:myScene];
}

现在,如果我有一个不同的类A(可以在 中找到此类的实例GameScene),我如何将 SKSpriteNodes 添加A到 main中GameScene

什么是最简单/最有效的方法?

谢谢,

刘易斯

4

2 回答 2

1

您可以在返回 SKSpriteNodes 的类 A 中创建方法,例如:

// in .m
-(SKSpriteNode*)getHero {
    SKSpriteNode *hero = [SKSpriteNode spriteWithImageNamed:@"player.png"];
    // Add more customisation here
    return hero;
}

在您的 GameScene 中,您可以这样称呼它:

SKSpriteNode *hero = [a getHero];
hero.position = CGPointMake(512, 384);
[self addChild: hero];

请记住将类声明添加到 .h 文件:

-(SKSpriteNode*)getHero;

希望这是你所追求的。

于 2014-03-04T18:27:53.873 回答
0

如果 A 在没有 GameScene 明确请求它们的情况下生成节点,那么您可以使用委托模式。当 A 有要添加的新节点时,让 A 在其委托上调用方法。

于 2014-03-04T18:21:42.223 回答