0

私は迷路を使ってアプリを作っています.Interface Builderの迷路の中にボールを入れました(そのためのアウトレットを入れました).

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

ball.center = point;

if (CGRectIntersectsRect(ball.frame, maze.frame)) {
   //my stuff
}


   }

私は 2 つの CGRectIntersectsRect if ステートメントを持っています。つまり、ボールのフレームが迷路のフレームに触れた場合、// 私のことが起こりますが、何らかの理由で、迷路のフレームに触れずにボールを動かそうとすると、// 私のことが起こります。理由はわかりません。ボールが迷路の中にあるためかもしれません。おそらく、cgrectintersectsrect フレームが境界を越えていないと言ったからではありません。なぜこれが起こっているのですか?

flag と呼ばれる uiimageview の別の ioutlet があり、同じ cgrectintersectsrect タイプのコードがあり、同じ touchesMoved で動作するのに、なぜこれが動作しないのですか?

4

1 に答える 1

1

これを試してください

UITouch *touch = [[event allTouches] anyObject];

CGPoint point;

point = [touch locationInView:self.view];


point = [[CCDirector sharedDirector] convertToGL: point];


if (CGRectIntersectsRect(ball.bounds, maze.bounds)) {


//frame - x,y,w,h

//bounds- w,h
于 2011-07-14T16:09:52.327 に答える