0

HUDLayerとGameLayerでもタッチ検出が必要です。
player.position> 480の場合、ユーザーはGameLayerを適切に操作できないためです。
タッチ位置はHUDLayerに関連しています。これは良いことですが、両方のレイヤーにタッチする必要があります。両方のレイヤーで、タッチを有効にしてccTouchesBeganメソッドを試しましたが、ログには同じタッチ位置が2回表示されます。これどうやってするの?

GameLayer.mm

- (void) ccTouchesBegan(NSSet *)touches withEvent:(UIEvent *)event
{
   for(UITouch *touch in touches ) {
      CGPoint location = [touch locationInView: [touch view]];
      location = [CCDirector sharedDirector] convertToGL: location];
      NSLog(@"Touch X: %f Y: %f", location.x, location.y);
   }
}
4

1 に答える 1

2

私があなたが何をしたいのかを正しく理解しているなら、あなたはタッチ位置をノードスペースに変換する必要があります

[layer convertToNodeSpace: glTouchLocation];
于 2012-10-09T16:13:33.720 に答える