[cocos2d-x]Labelを変更しようとしてBAD ACCESS

updateの中で特定の条件になった時に
Labelのテキストを変更しようしたけどBAD ACCESSが出て
なんでじゃい!となったメモです。

ボールドがファイル名
斜体がメソッドです。
処理は斜体のメソッドの中に書いてあるイメージです。

HelloWorldScene.h
cocos2d::LabelTTF* label_exam;

HelloWorldScene.cpp
bool HelloWorld::init()
label_exam = LabelTTF::create(“init text”, “Arial”, 24);
auto label_exam->setPosition(Vec2(origin.x + visibleSize.width/3,
origin.y + visibleSize.height – label_exam->getContentSize().height));
this->addChild(label_exam);

void HelloWorld::update(float delta)
label_exam->setString(“change!”);

ちょっと読みづらいかもしれませんが、
initの中で作ったラベルのテキストをupdateの中で変更しようとしただけなんですよ。
これで動かすとlabel_exam->setString(“change!”);でBAD ACCESSだと言われます。

原因ですが、どうやらinitで
auto label_examとしているのが悪いようです。
autoを外してやると止まらずに動きましたとさ。

参考
http://stackoverflow.com/questions/23887399/cocos2d-x-3-1-exc-bad-access-on-touch-event-function

スポンサーリンク
  • このエントリーをはてなブックマークに追加

コメントをどうぞ

メールアドレスが公開されることはありません。