препятствовать движению объекта касанием стен? - PullRequest
1 голос
/ 23 мая 2010

Я пытаюсь создать очень простую игру, в которую можно перетащить простое изображение.Дело в том, что в кадре есть стена (просто прямоугольник), по которой изображение не должно идти.поэтому я сделал что-то вроде этого:

    - (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];
  }
 }
}

Но проблема заключалась в том, что изображение вышло за его пределы, а затем застряло там, и касание закончилось.

, поэтому я добавилthis:

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

  }

Но это заставило изображение начать мерцать при пересечении со «стеной» и в итоге застряло там тоже.

Я чувствую, что должен быть простой способ сделать это,Может ли кто-нибудь просветить меня, пожалуйста?

1 Ответ

0 голосов
/ 23 мая 2010

ок нашел мою ошибку ..

Я должен был сделать это:

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

вместо этого:

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

Вы, довольно глупо ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...