Почему обнаружение касаний становится все медленнее и медленнее? - PullRequest
4 голосов
/ 19 февраля 2009

В моей игре, если я играю в определенную игру несколько раз, мои прикосновения требуют больше времени для обнаружения. Он сохраняет все касания, а затем применяет все касания одновременно.

Кто-нибудь может сказать мне, в чем проблема?

В touchesBegan я написал:

if (CGRectContainsPoint([tapView frame], [touch locationInView:self])
    && tapView.alpha == 1) {
    [self callTapCode];
}

Это код touchesEnded. Если я постучал и отпустил постучал, это показывает одно событие постукивания.

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    if (checkTap == TRUE && tapView.alpha == 1 )
        tap_effect_view.alpha = 0;
}

- (void)callTapCode {
    // Move player code by 6 pixels
    // not possible to write all code
}

В tapView Я постоянно нажимаю. callTapCode перемещает игрока на шесть пикселей. Но через некоторое время мои прикосновения обнаруживаются очень медленно, так что игрок выглядит так, будто он прыгает. Я играл в игру непрерывно от 15 до 16 раз.

Ответы [ 3 ]

1 голос
/ 19 февраля 2009

Вы можете изучить этот учебник , чтобы научиться пользоваться инструментом Leaks . Это часть набора инструментов, который поставляется с Xcode, который, помимо прочего, поможет вам отслеживать утечки памяти и общие проблемы с производительностью вашего приложения.

1 голос
/ 20 февраля 2009

Я нашел решение своей проблемы. В моей игре я включил tapView.multipleTouchEnabled = TRUE

tapView - это вид, где я непрерывно стучал.

Когда я делаю это FALSE, это работает.

1010 * т.е. *

tapView.multipleTouchEnabled = FALSE;

Я точно не знаю как. Но это работает.

Спасибо за ответы.

0 голосов
/ 19 февраля 2009

Попробуйте поискать утечки памяти. Может быть, iPhone много использует виртуальную память.

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