0

オンライン チュートリアルまたは例を参照するか、ハウツーを示してください。Touch イベントを使用して 1 本の指でタッチし、ビューで複数のゲーム オブジェクトをスワイプして選択する方法を示していますか? 私はオンラインで Apple Dev Docs を見てきましたが、役立つものを見つけることができません (そこにないという意味ではなく、見つからないという意味です)。

これが私のシナリオです:

3 つの敵ゲーム オブジェクトがヒーロー ゲーム オブジェクトに向かって移動しています。敵のゲーム オブジェクトの 1 つに触れて (アクティブ化)、スワイプして他の 2 つを選択します。これにより、すべての敵が破壊されます (その部分は処理でき、正しいタッチ イベントを実装し、それらのイベントに自分のゲーム オブジェクトを認識させます)。この特定のシナリオは、私が立ち往生している場所です)。

詳細: XCode 5 (Obj C)、Sprite Kit、iOS 用 (これらの詳細が重要かどうかはわかりませんが、念のため) を使用します。

4

1 に答える 1

2

物理ボディの検索は、レイ キャスティングを使用して、指定されたパスに沿ったシーンにある物理ボディをテストする方法の良い例です。

enumerateBodiesAlongRayStart:end:usingBlock:各イベントの呼び出しをtouchesMoved回避できる場合がありますが、最適化として、現在のタッチ ポイントに最も近いオブジェクトを計算し、指が十分に近づいたときにのみ衝突テストを実行できます。

この手法で覚えておくべきことは、レイ ポイントがシーン座標内にある必要があるということです。したがって、次のようなものを使用する必要がある場合があります。

-(void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
  CGPoint sceneTouchPoint = [[touches anyObject] locationInNode:self];
  [self.physicsWorld enumerateBodiesAlongRayStart:self.lastSceneTouchPoint end:sceneTouchPoint usingBlock:^(SKPhysicsBody *body, BOOL *stop) {
    NSLog(@"Node: %@", body.node);
  }];

  self.lastSceneTouchPoint = sceneTouchPoint;
}
于 2013-11-06T03:35:53.780 に答える