cocos2d:あるレイヤーから別のレイヤーにCCSpriteを描画する

user3049894

cocos2d:一般的に、この状況:2つのレイヤーがあります:1)HelloWorldLayer(メイン)とHudlayer:

@ implementation HelloWorldLayer.
+ (CCScene *) scene
{
/ / 'Scene' is an autorelease object.
CCScene * scene = [CCScene node];
    
/ / 'Layer' is an autorelease object.
HelloWorldLayer * layer = [HelloWorldLayer node];
    
/ / Add layer as a child to scene
[scene addChild: layer];
    
    HudLayer * hud = [HudLayer node];
    [scene addChild: hud];
    layer.hud = hud;
/ / Return the scene
return scene;
}

- (id) init
{
if ((self = [super init])) {
...}

HelloWorldLayerには、レイヤーCCSpriteHelloWorldLayerに追加する必要のあるメソッドがあります。

- (void) CreateSprite {
        CGSize winSize = [CCDirector sharedDirector]. WinSize;
        CCSprite * sprite = [CCSprite spriteWithFile: @ "bird.png"];
                    sprite.position = ccp (winSize.width / 2 , winSize.height / 2);
        [self addChild: sprite];
}

Hudlayerでは、ボタンを押すと機能するボタンとメソッド

@ implementation HudLayer

- (Id) init
{
    self = [super init];
    if (self) {
                CGSize size = [CCDirector sharedDirector]. WinSize;
       CCMenuItem * Button = [CCMenuItemImage
                    itemFromNormalImage: @ "1.png" selectedImage: @ "1.png" target: self selector: @ selector (Build :)];
        CCMenu * menu = [CCMenu menuWithItems: Button, nil];
        [menu alignItemsHorizontallyWithPadding: 20] ;
        [menu setPosition: ccp (-Button.contentSize.width / 2 + size.width, size.height- 100 ) ] ;
        [self addChild: menu];

    }
    return self;
    
}
- (void) create: (id) sender
{
    HelloWorldLayer * create = [[HelloWorldLayer alloc] init];
    [create CreateSprite];
}

画面ボタンに表示されます。クリックすると、メソッドがHelloWorldLayer CreateSpriteで機能し、画面にTstsspriteが追加されます。動作するメソッドですが、なぜスプライトが追加されないのですか、エラーは表示されません

ルネッサンス

実際に行っているのは、HellowroldLayerのすべての新しいオブジェクトを作成してから、そのオブジェクトからcreate関数を呼び出すことです。したがって、スプライトはそのオブジェクトに追加されます。ただし、新しいオブジェクトは古いオブジェクトとは完全に異なるため、古いオブジェクトにスプライトが追加されることはありません。

したがって、この場合にできることは、オブジェクトにタグを付けることです。

self.tag = 777;

次に、createメソッドで、タグからそのオブジェクトを取得してから、メソッドを作成できます。

CCScene* scene1 = [[CCDirector sharedDirector] runningScene];
if (scene1) {
   id layer1 = [scene1 getChildByTag:777];
   [layer1 CreateSprite];
}

いいえ、新しいオブジェクトを作成する必要があります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

あるレイヤーから別のレイヤーに情報を渡す

分類Dev

オフセットなしでイラストレーターのあるレイヤーから別のレイヤーにpageItemを複製する

分類Dev

Pythonを使用して1つのレイヤーから別のレイヤーにフィルターをコピーする方法はありますか

分類Dev

Cocos2d:CCNode / CCSpriteがディスプレイリストにあるかどうかを確認します

分類Dev

畳み込み出力に別のレイヤーを外部から追加する

分類Dev

あるモデルからレイヤーを取得し、それを別のモデルに割り当てます

分類Dev

QGISコピーアンドペーストポイントをあるレイヤーから別のレイヤーに

分類Dev

Keras:別のConv2Dレイヤーで再利用するためにConv2Dレイヤーのカーネルを転置する

分類Dev

レイヤーを再描画するためのCAShapeLayerのsetNeedsDisplay

分類Dev

このレイヤーのCATransform3Dを描画する方法は?

分類Dev

Rasterbrickの下位レイヤーからデータを抽出する

分類Dev

drawRectシェイプレイヤー描画で描画をクリアするには

分類Dev

ホバー時に別のレイヤーが移動すると、そのレイヤーがホバーしてからホバー停止します

分類Dev

プレイヤーの周りにあらゆる方向からランダムに敵を生成します

分類Dev

scapyを使用してpkt1から別のpkt2に特別なレイヤーを取得するにはどうすればよいですか?

分類Dev

Keras APIを使用して「入力レイヤーから非表示レイヤーへ」および「非表示レイヤーから出力レイヤーへ」の重みを抽出するにはどうすればよいですか?

分類Dev

開いているレイヤーに複数のレイヤーを表示する2

分類Dev

レイヤーからDockerイメージを構築する

分類Dev

なぜDAOレイヤーを気にするのか

分類Dev

Chromeが変更時にレイヤー全体を再描画する必要がないのはなぜですか?

分類Dev

Chromeが変更時にレイヤー全体を再描画する必要がないのはなぜですか?

分類Dev

テーブルの後ろのレイヤーであるラベルに描画する

分類Dev

独自のレイヤーを作成する

分類Dev

ViewModelレイヤーからViewレイヤーにデータを渡す方法

分類Dev

KineticJSレイヤーから色を取得する方法(レイヤーからカラーピッカー)

分類Dev

選択したレイヤーにポリラインを描画するArcMapC#

分類Dev

マップ範囲に描画レイヤーを含める方法

分類Dev

別のレイヤードオブジェクトからレイヤードオブジェクトを作成する

分類Dev

keras で CNN に特別なレイヤーを作成する

Related 関連記事

  1. 1

    あるレイヤーから別のレイヤーに情報を渡す

  2. 2

    オフセットなしでイラストレーターのあるレイヤーから別のレイヤーにpageItemを複製する

  3. 3

    Pythonを使用して1つのレイヤーから別のレイヤーにフィルターをコピーする方法はありますか

  4. 4

    Cocos2d:CCNode / CCSpriteがディスプレイリストにあるかどうかを確認します

  5. 5

    畳み込み出力に別のレイヤーを外部から追加する

  6. 6

    あるモデルからレイヤーを取得し、それを別のモデルに割り当てます

  7. 7

    QGISコピーアンドペーストポイントをあるレイヤーから別のレイヤーに

  8. 8

    Keras:別のConv2Dレイヤーで再利用するためにConv2Dレイヤーのカーネルを転置する

  9. 9

    レイヤーを再描画するためのCAShapeLayerのsetNeedsDisplay

  10. 10

    このレイヤーのCATransform3Dを描画する方法は?

  11. 11

    Rasterbrickの下位レイヤーからデータを抽出する

  12. 12

    drawRectシェイプレイヤー描画で描画をクリアするには

  13. 13

    ホバー時に別のレイヤーが移動すると、そのレイヤーがホバーしてからホバー停止します

  14. 14

    プレイヤーの周りにあらゆる方向からランダムに敵を生成します

  15. 15

    scapyを使用してpkt1から別のpkt2に特別なレイヤーを取得するにはどうすればよいですか?

  16. 16

    Keras APIを使用して「入力レイヤーから非表示レイヤーへ」および「非表示レイヤーから出力レイヤーへ」の重みを抽出するにはどうすればよいですか?

  17. 17

    開いているレイヤーに複数のレイヤーを表示する2

  18. 18

    レイヤーからDockerイメージを構築する

  19. 19

    なぜDAOレイヤーを気にするのか

  20. 20

    Chromeが変更時にレイヤー全体を再描画する必要がないのはなぜですか?

  21. 21

    Chromeが変更時にレイヤー全体を再描画する必要がないのはなぜですか?

  22. 22

    テーブルの後ろのレイヤーであるラベルに描画する

  23. 23

    独自のレイヤーを作成する

  24. 24

    ViewModelレイヤーからViewレイヤーにデータを渡す方法

  25. 25

    KineticJSレイヤーから色を取得する方法(レイヤーからカラーピッカー)

  26. 26

    選択したレイヤーにポリラインを描画するArcMapC#

  27. 27

    マップ範囲に描画レイヤーを含める方法

  28. 28

    別のレイヤードオブジェクトからレイヤードオブジェクトを作成する

  29. 29

    keras で CNN に特別なレイヤーを作成する

ホットタグ

アーカイブ