「ios5でcocos2dゲーム開発を学ぶ」に飛び込むとき、ch08で
のEnemyCache.m
-(id) init
{
if ((self = [super init]))
{
// get any image from the Texture Atlas we're using
CCSpriteFrame* frame = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"monster-a.png"];
batch = [CCSpriteBatchNode batchNodeWithTexture:frame.texture];
[self addChild:batch];
[self initEnemies];
[self scheduleUpdate];
}
return self;
}
したがって、バッチはテクスチャ「monster-a.png」を使用します
の方法EnemyEntity.m
でinitWithType
switch (type)
{
case EnemyTypeUFO:
enemyFrameName = @"monster-a.png";
bulletFrameName = @"shot-a.png";
break;
case EnemyTypeCruiser:
enemyFrameName = @"monster-b.png";
bulletFrameName = @"shot-b.png";
shootFrequency = 1.0f;
initialHitPoints = 3;
break;
case EnemyTypeBoss:
enemyFrameName = @"monster-c.png";
bulletFrameName = @"shot-c.png";
shootFrequency = 2.0f;
initialHitPoints = 15;
break;
default:
[NSException exceptionWithName:@"EnemyEntity Exception" reason:@"unhandled enemy type" userInfo:nil];
}
if ((self = [super initWithSpriteFrameName:enemyFrameName]))
{
//...
}
したがって、返されるオブジェクトは3つの異なるフレームにある可能性があります。そのテクスチャに含まれているCCSpriteのみがCCSpriteBatchNodeに追加できるので、明らかに、「monster-b.png」は「monster-a.png」に含まれていません。なぜ別の敵をバッチに追加できるのでしょうか。