• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:cocos2dxでaddChildについて)

cocos2dxでaddChildについて

このQ&Aのポイント
  • cocos2dx3.6を使ってアプリの開発を最近始めたのですが、addChildをforループの中で呼び出すと[Assert failed: child already added. It can't be added again]とメッセージがデバッグログに表示されてエラー停止してしまいます。
  • 2回addchildを呼び出しているからというのはわかったのですが、じゃあどうやってこれを回避したらよいのだろうということで悩んでいます。
  • やりたいことのイメージはシミュレーションゲームのようにマップチップを並べることだけなのですが、中々上手くいかないです。別ツールでマップチップを並べてでは無くプログラムの中で作成したいのでお手数ですがごご助力頂けないでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
noname#247307
noname#247307
回答No.1

Cocos2d-xはちょっと触ったぐらいしか経験がないのですが……。 ざっと見たところ、★のところでTileを二重にaddChildしてしまっている、ということなのですよね? Tileは、forの外側にありますから、for内でaddChildすれば二重に組み込まれてしまうのは当たり前です。 auto Tile = Sprite::createWithTexture~の部分をfor内に記述すればいいと思いますが、それではまずいですか? Sprite自体は、同じテクスチャを使うとしても毎回createしてaddChildするものだと思いますが……。

6gggggg
質問者

お礼

ご回答ありがとうございます。 ご指摘の通り、for内にcreateを入れたらエラーはでなくなりました。 一度createしたらもうcreateする必要はないと思い込んでいました。。。 何でも試してみないといけないですね。 お時間いただきありがとうございました。

関連するQ&A