0

ユーザーがジョイスティックでプレイしているときに、中央のキャラクターを動かしている間に、画面の右下に触れて (2 回目のタッチ)、銃を発射できるようにするにはどうすればよいですか? 私は他の質問を見ましたが、まだ理解できません...

これは基本的にコードです....:

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
//make the touch point...
UITouch *touch = [[event allTouches]anyObject];  
CGPoint point = [touch locationInView:touch.view];

if (//touching a certain area (on the joystick)) {
//do stuff
}

else if (point.x > 300 && point.y > 200) {
/fire method

}




}

では、基本的に touchesBegan を再度呼び出して CGPoint ポイントの位置を見つけ、fire メソッドを呼び出す必要があるかどうかを判断するにはどうすればよいでしょうか?

ありがとう

編集:

私はその2番目のオプションを実行しようとしましたが、これを実行しました:view controller.hで追加しました:

@interface fireView: UIView 
@end 

そして.mに次を追加しました:

@implementation fireView -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {         
NSLog(@"hi");
} 

@end 

....しかし、「こんにちは」をログ/出力しませんか?

4

1 に答える 1

0

2つのUIGestureRecognizersを使用します。必要なサイズの2つの非表示ビューを作成できます。1つはジョイスティック用、もう1つは発射ボタン用です。すべてのビューに対して、単一のジェスチャ認識機能を使用します。そして、それが火かジョイスティックかをチェックすることなく、さまざまな方法でこれらのビューのタップを処理できるようになります。

すでにjoystickViewとfireViewの2つのビューがあるとしましょう。その後、次のようにします

  UITapGestureRecognizer* fireTapGestureRec= [[UITapGestureRecognizer alloc] 
                             initWithTarget:self action:@selector(fireTapped:)];
    fireTapGestureRec.delegate = self;
    fireTapGestureRec.numberOfTapsRequired = 1;
    fireTapGestureRec.numberOfTouchesRequired = 1;
    [fireView addGestureRecognizer:fireTapGestureRec];
    [fireTapGestureRec release];

fireTapped:イベントを処理するために書き込みます。そして、ジョイスティックについても同じことが言えます。

編集 2番目のオプション(コメントで提案)次のようなUIViewのサブクラスを作成します

@interface fireView: UIView
@interface joystickView: UIView

サブクラスごとに独自のtouchesBegan:またはtouchesEnded:

于 2012-07-01T16:52:16.820 に答える