独自のクラスに「爆弾」を持ってCCSprite
います(cocos2dを使っていない人がこれを読むと、CCSpriteはかなりNSObjectです)。
CCSprite ファイルは次のようになります。
Bomb.h:
#import <Foundation/Foundation.h>
#import "cocos2d.h"
#import <OpenAL/al.h>
@class HelloWorldLayer;
@interface Bomb : CCSprite {
@private
int length;
}
@property (readwrite) int length;
@end
Bomb.m:
#import "Bomb.h"
@implementation Bomb
@synthesize length = _length;
@end
.h を使用してゲーム レイヤー (HelloWorldLayer
プロのように)に追加@class Bomb;
し、Bomb.h を HWLayer.m にもインポートします。コードで使用する場所は次のとおりです。
Bomb *bombe = [[Bomb alloc] init];
bombe.position = explosionPoint;
bombe.length = player.explosionLength; //player is another CCSprite class. This one is from the method. ....fromPlayer:(PlayerSprite *)player
//Logging here works, tested and the bombe.position is valid and .length is valid
[currentBombs addObject:bombe];
NSLog(@"%@",currentBombs); //Here doesn't, guessing crash is at ^
言ったように、それはライン上でクラッシュしaddObject:
ます。クラス化されていない CCSprite をBomb
クラスに置き換えただけなので、その理由はよくわかりません。クラッシュは単なる(lldb)
もので、左側のものはこれらのうちの数千を出力します:
これは説明を言っているので、CCSpriteサブクラスにエラーがあると思います。しかし、bombe.* ログは正常に機能しました。
なぜそれが機能しないのか誰かが理解していますか?
編集: