Проблемы с касаниями в представлениях прокрутки OpenFeint на iOS - PullRequest
0 голосов
/ 19 апреля 2011

Я искал и спрашивал везде, пока безрезультатно. У меня есть игра, в которую я помещаю OpenFeint, и у меня возникают проблемы с представлениями прокрутки на панели инструментов OpenFeint. Есть списки прокрутки для списков лидеров и достижений (и других, которые в настоящее время не имеют отношения), и в каждом из них можно прокручивать, но это так, как если бы оно никогда не получало никаких событий с сенсорным завершением. Когда вы отпускаете, контент просто остается на месте, даже если он находится вне поля зрения - он не приходит в норму. При повторном прикосновении он мгновенно возвращается назад и снова прокручивается.

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

Соответствующие сведения: приложение использует SDL (снимок git из 1.3, который я должен был скомпилировать самостоятельно и может предоставить любой соответствующий источник), OpenGL и почти полностью C ++. Я использую OpenFeint 2.10 (новейшая версия), XCode 4.0.2 (новейшая версия) и iOS 4.3.2 (в симуляторе; немного более старые версии на моих реальных устройствах). Я думаю, что сделал это так, чтобы игра не проверяла события, пока на приборной панели OF была включена, на случай, если это было проблемой, но либо я потерпел неудачу, либо это не дало никаких результатов.

Вот скриншот застрявшего вида прокрутки в симуляторе: http://www.happyspork.com/pics/of_scrollview.png

Ответы [ 2 ]

1 голос
/ 04 июня 2011

Хотя это руководство предназначено для интеграции Cocos2D с Openfeint, оно решает аналогичную проблему, когда ввод в панель мониторинга OpenFeint искажается:

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

Я не знаю, имеет ли SDL аналогичную функцию «паузы», но вызывает ее аналогичным образомможет решить вашу проблему.

Вот соответствующий код из этого примера:

- (void)dashboardDidAppear
   {
    [[Director sharedDirector] pause];
    [[Director sharedDirector] stopAnimation];
   }
- (void)dashboardDidDisappear
   {
    [[Director sharedDirector] resume];
    [[Director sharedDirector] startAnimation];
   }
0 голосов
/ 21 апреля 2011

В случае, если у кого-то еще есть эта проблема, эта ссылка по существу исправила ее для меня: http://forums.libsdl.org/viewtopic.php?t=5678&sid=99aa9531656e0aa398ce35a7c348fe88

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

...