0

タッチしたいこのスプライトがあり、タッチしなくなったらすぐに、メソッドnslogを「タッチしない」と呼びたいと思います。今のところ、コードを設定する方法では、他の何かをタップしたときにメソッドnslogを「タッチしない」と呼び出すだけです。オブジェクトがタッチしているときにメソッドnslogを「タッチ」と呼びたいのですが、他の何かにタッチするとすぐに指を離すと、nslogが「触れていない」と呼ばれます。助言がありますか?お時間をいただきありがとうございます。

-(void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
NSSet *allTouches = [event allTouches];
UITouch* touch = [touches anyObject];
CGPoint location = [touch locationInView: [touch view]];
location = [[CCDirector sharedDirector] convertToGL:location];
 int arraysize = [brain count];
for (int i = 0; i < arraysize; i++) {
if (CGRectContainsPoint( [[brain objectAtIndex:0]  boundingBox], location)) {
        NSLog(@"touched");
        }else {

NSLog(@"not touched");
   }}}
4

2 に答える 2

0

タッチハンドラーをターゲットタッチデリゲートとして登録することをお勧めします。それはあなたがこのタッチを飲み込むことを可能にします。

すべてのデリゲートメソッドを処理する必要があります。つまりtouchBegan:withEvent:、、、。touchMoved:withEvent:_ touchEnded:withEVent:したがって、その位置がスプライトの長方形の内側にある場合は、開始時にタッチを保存するだけです。次に、保存されたタッチ位置touchMoved:withEvent:touchEnded:withEvent:処理して、タッチがスプライトの長方形を離れたかどうかを判断します。

于 2012-10-30T11:46:21.303 に答える
0

おそらくを定義したいと思うでしょうccTouchesEnded

于 2012-10-30T11:46:30.057 に答える