1

シンプルなimageViewをドラッグできる非常にシンプルなゲームを作成しようとしています。問題は、フレーム (単なる長方形) に、画像を載せてはならない壁があることです。だから私はこのようなことをしました:

    - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
 UITouch *touch = [[event allTouches] anyObject];
 if ([touch view] == myImage) {
  if (CGRectContainsRect (CGRectMake(0, 0, 800, 768), [myImage frame]))
  {
   myImage.center = [touch locationInView:self.view];
  }
 }
}

しかし、問題は、画像が境界を超えてそこに行き詰まり、タッチ移動が終了したことでした。

だから私はこれを追加しました:

    else if (CGRectIntersectsRect (CGRectMake(801, 0, 223, 768), [myImage frame])) {
   CGPoint touchedPoint = [touch locationInView:self.view];
   myImage.center = CGPointMake(730, touchedPoint.y); 

  }

しかし、これにより、「壁」と交差するときに画像がちらつき始め、最終的にはそこで動かなくなりました。

それを行う簡単な方法がなければならないと感じています。誰か教えてください。

4

1 に答える 1

0

わかりました私の間違いを見つけました..

私はこれをしなければなりませんでした:

if (CGRectContainsPoint (CGRectMake(0, 0, 800, 768), [touch locationInView:self.view]))

これの代わりに:

if (CGRectContainsRect (CGRectMake(0, 0, 800, 768), [myImage frame]))

ええ、かなりばかげています..

于 2010-05-22T22:59:12.240 に答える