Включение мультитач в игре? - PullRequest
1 голос
/ 29 января 2011

Я создаю простую игру в понг в Xcode. У меня есть версия для 2 игроков, и оба весла могут быть перемещены и функционировать отлично. Игра безупречна за исключением того факта, что вы не можете одновременно перемещать оба весла, что делает режим для 2 игроков бесполезным.

Как я могу включить обе лопасти одновременно? Я уже пытался выбрать кнопку «Multiple Touch» в Интерфейсном Разработчике, но она ничего не делает, и я не совсем уверен, что это даже правильный путь к включению Multi Touch, как я хочу.

Кроме того, моя игра - приложение на основе просмотра, если это имеет значение.

Спасибо!

Ответы [ 3 ]

1 голос
/ 29 января 2011

РЕДАКТИРОВАТЬ: я неправильно прочитал вопрос. Добавлен фрагмент кода.

Вот код, который я использую для извлечения всех касаний, когда я получаю событие touchesBegan:

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    NSArray *touchesArray = [touches allObjects];
    NSUInteger nNumTouches = [touchesArray count];
    UITouch *touch;
    CGPoint ptTouch;
    for (int nTouch = 0;  nTouch < nNumTouches;  nTouch++)
    {
        touch = [touchesArray objectAtIndex:nTouch];
        ptTouch = [touch locationInView:self.view];

        // Do stuff with the touch
    }
}

и аналогично для прикосновенийВокругленный и прикосновенияПеремещено

1 голос
/ 29 января 2011

Из моего опыта (что не так уж много).Вы можете создать 2 UIViews для 2 веслов, прикосновение в одном виде переместит одно весло, в то время как прикосновение в другом переместит другое весло.Я надеюсь, что это поможет.

Если вы не знаете, как разделить представления, вы можете просто заставить его идентифицировать 2 касания

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch1 = [[event touchesForView:zone1] anyObject];
UITouch *touch2 = [[event touchesForView:zone2] anyObject];
if (touch1)
    touchOffset1 = paddle1.center.x - [touch1 locationInView:touch1.view].x;
if (touch2)
    touchOffset2 = paddle2.center.x - [touch2 locationInView:touch2.view].x;
}

Это вы можете использовать, вероятно, это не таксамый продуктивный, но он работает, если вы не можете понять, как разделить касания.

0 голосов
/ 22 февраля 2013
self.view.multipleTouchEnabled = YES;

по умолчанию это не

...