画面内のコンテンツの一部をパンおよびズームできるようにするために、CCLayerPanZoom 拡張機能を使用することにしました。ソース コードを見ると、CCLayer クラスから派生していることがわかります。そこで、ナビゲーション スタックにプッシュされるノードの親クラスを CCLayer から CCLayerPanZoom に変更します。しかし、アプリの起動時に表示されるのは、単なる黒い画面です。わかりやすくするために、CCLayerPanZoom から派生した新しいクラスを作成し、init メソッドでテスト スプライトを追加して、AppDelegate.m のナビゲーション スタックにプッシュしました。それでも何も得られず、黒い画面だけでした。クラスに実装した 2 つのメソッドを次に示します。
@interface TestPanZoom : CCLayerPanZoom {
}
+(CCScene *) scene;
@end
@implementation TestPanZoom
+(CCScene *) scene
{
// 'scene' is an autorelease object.
CCScene *scene = [CCScene node];
// 'layer' is an autorelease object.
TestPanZoom *layer = [TestPanZoom node];
// add layer as a child to scene
[scene addChild: layer];
// return the scene
return scene;
}
-(id)init{
if(self=[super init])
{
CCSprite *sprite=[CCSprite spriteWithFile:@"Default.png"];
sprite.scale=0.5;
[self addChild:sprite];
}
return self;
}
@end