0

したがって、次のようなことができるメイン ビューがあります。

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

これはGameScene、私のメイン シーンである で行われ、View Controller に次のようにロードされます。

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

と呼ばれる別のクラスがAある場合 (このクラスのインスタンスは にありますGameScene)、SKSpriteNodes を main に追加するにはどうすればよいですAGameScene

これを行う最も簡単で効率的な方法は何ですか?

ありがとう、

ルイス

4

2 に答える 2

1

クラス A に、SKSpriteNodes を返すメソッドを作成できます。次に例を示します。

// 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

GameScene がノードを明示的に要求せずに A がノードを生成している場合は、デリゲート パターンを使用できます。追加する新しいノードがある場合は、デリゲートのメソッドを A に呼び出してもらいます。

于 2014-03-04T18:21:42.223 に答える