こんにちは、cocos2d ゲーム開発者の皆さん、私は単純な問題を抱えています
2 つの CCLayer を持つ CCScene を実装しています。1 つはゲームで、もう 1 つは次のように実装された HUD です。
+ (CCScene *)scene {
CCScene *scene = [CCScene node];
LevelLayer *layer = [LevelLayer node];
LevelHUDLayer *hud = [LevelHUDLayer node];
layer = [layer init];
[layer setHUDLayer:hud];
[hud setParentLevel:layer];
[scene addChild:hud z:HUD_ZLevel];
[scene addChild:layer];
return scene;
}
そして、それはうまく機能します。また、次のように実装する UIPinchGestureRecognizer もあります。
- (void)onEnterTransitionDidFinish {
pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(makePinch:)];
[[CCDirector sharedDirector].view addGestureRecognizer:pinch];
}
そして、後で次のようなコードでジェスチャーをキャッチします。
self.scale = pinch.scale;
これは問題なく動作しますが、HUDLayer ではなく、ゲーム レイヤーのみがジェスチャを取得するようにする必要があります。現在、HUDLayer のコントロールに触れて、画面上でキャラクターを動かそうとすると、レベルがスケーリングされます。これは非常に面倒です。
私の質問は、LevelLayer のみを割り当てて Gesture Recognizer を取得するにはどうすればよいですか? CCLayer の UIView にアクセスできれば簡単にできると思いますが、CCDirector.sharedDirector.view しかアクセスできないようです。
お早めにどうぞ!