2009-02-19 2 views
4

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

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

В 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 раз.

+0

У вас есть пример кода, который демонстрирует основные элементы проблемы? – mmcdole

+0

в touchesBegan я написать , если (CGRectContainsPoint ([tapView кадра], [сенсорный locationInView: само]) && tapView.alpha == 1) { \t \t \t [собственной callTapCode]; \t} В tapView i m непрерывно постукиваю. Метод callTapCode перемещает пользователя на шесть пикселей. Но когда-то мои прикосновения обнаружились очень медленно. – Jyotsna

+0

поэтому игрок смотрит в прыжках. Я играл в игру непрерывно 15-16 раз. – Jyotsna

ответ

0

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

+0

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

+0

Он применяет все оставшиеся краны во время игры на плеере, поэтому игрок выглядит как прыжок. чтобы проверить, медленны ли процессоры, я просто вызываю один и тот же код в таймере и запускаю игру от 20 до 25 раз, но он отлично работает. Значит, это не проблема процессора медленным, поэтому вы можете помочь мне – Jyotsna

+0

Вы выпускаете сохраненные штрихи? И как вы это делаете? –

1

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

+0

Я также использую это, но он не дает большого разницы – Jyotsna

+0

Что сообщает Leaks при создании событий касания (когда вы касаетесь экрана)? Я бы порекомендовал вам пройти учебник, чтобы вы могли изучить этот инструмент. Это действительно полезно. –

1

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

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

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

т.е.

tapView.multipleTouchEnabled = FALSE; 

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

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

Смежные вопросы