Как определить местоположение касания, используя свойство просмотра - PullRequest
0 голосов
/ 18 августа 2011

Я пытаюсь разработать несколько простых игровых приложений.Для игры в стиле понг у меня есть движущийся мяч, который остается в пределах и два весла.Я реализовал код, который перемещает весло 1 так, чтобы он отражал шар, как и ожидалось.

Когда я попытался добавить такое же поведение к другому веслу, я попробовал это:

UITouch *touch = [[event allTouches]anyObject]; // Picks up the touch

CGPoint location = [touch locationInView:self.view]; // Gets coordinates 
// to help move the paddle on the X axis; Y axis is determined by the paddle,
// so it only moves along one axis


if ([touch view] == paddle2) {
    // move the second paddle 
    ...    
}

else {
    // move the first paddle   
    ...
}

Однако,любые касания только перемещают paddle1, указывая, что условие никогда не активируется.Основываясь на документации, я подумал, что, отправив сообщение [touch view], изображение, которое было затронуто, вернет свое собственное имя.Что я делаю неправильно?Это простой способ сделать это?

1 Ответ

0 голосов
/ 18 августа 2011

Не используйте разные виды для весла, используйте один хост-вид с разными CALayers для рисования своих объектов.
Вы можете перемещать весла, назначая новые источники слоям.Представление должно обработать следующие методы

- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent *)event;
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;

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

Надеюсь, это поможет.

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