文字列入力からtmxマップを作成する際に問題が発生しました。
bool LevelManager :: initLevel(int currentLevel) {{ constchar*マップ; 試す { map = LevelManager :: getLevel(currentLevel); } catch(int){ 1を投げます。 } if(map!= NULL){ CCLog( "%s"、map); tileMap = CCTMXTiledMap :: create(map); tileMap-> setAnchorPoint(ccp(0,0)); tileMap-> setPosition(ccp(15,20)); this-> addChild(tileMap、5); backgoundLayer = tileMap-> layerNamed( "Background"); } そうしないと { 1を投げます。 } trueを返します。 }
それが私のコードです。非常に不安定です。ほとんどの場合、クラッシュしますが、クラッシュしない場合もあります。文字列マップからマップを読み込んでいます。Wichはconst*charです。私のマップの名前はLevel1.tmxで、次のようにマップをロードすると、tileMap = CCTMXTiledMap :: create( "Level1.tmx"); 常に機能し、クラッシュすることはありません。そして、ロード前の行にログインしているので、mapの値がLevel1.tmxであることを知っています。
クラッシュすると、ログは次のように出力します:(lldb)および行tileMap-> setAnchorPoint(ccp(0,0)); 「スレッド1:EXC_BAD_ACCESS(code = 2、adress = 0x0)」と表示されます
なぜこれが起こるのか、そしてそれを修正する方法を誰かが知っていますか?
どうもありがとう。
追伸:私はxcode、最新のcocos2d-xリリース、iPhoneシミュレーターを使用しています
編集:
ブレークポイントを使用して、タイルマップのロード中に問題が発生した場所を確認しました。
行でtileMap=CCTMXTiledMap :: create(map); 私の変数マップはまだ問題ありません
しかし、オンラインでtileMap-> setAnchorPoint(ccp(0,0)); 突然破損します(ほとんどの場合)