(Решено) Вопрос. Оптимизация скриптов с событиями на Touch

Программирование для iPhone & Android

(Решено) Вопрос. Оптимизация скриптов с событиями на Touch

Сообщение EnterTheWork 09 сен 2010, 19:33

Всем добрый вечер!

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

Синтаксис:
Используется javascript
private var curRect : Rect        = Rect( 65,0, 60,60 );
private var bool      : boolean   = false;
private var touchId : int            = -1;

function Update () {
        var touchesCount : int = 0;
        touchesCount              = iPhoneInput.touchCount;
        for( var i : int = 0; i != touchesCount; ++i ) {
                var touch : iPhoneTouch = iPhoneInput.GetTouch( i );
                if( touch.phase ==iPhoneTouchPhase.Began ) {
                        if( !bool ) {
                                bool = curRect.Contains( touch.position );
                                if( bool ) {
                                        touchId = touch.fingerId;
                                        SomeFunction();
                                        continue;
                                }
                        }
                }
                else
                if( touch.phase ==iPhoneTouchPhase.Ended || touch.phase ==iPhoneTouchPhase.Canceled ) {
                        if( bool && touchId ==touch.fingerId ) {
                                bool      = false;
                                touchId = -1;
                        }
                }
        }
}
 


Получается что, где бы я на экране не тыцнул, во всех скриптах будет обрабатываться цикл на определение касаний, а если еще несколькоми пальцами тыцать то получается падение в производительности. Подскажите, кто что может! Как сделать наиболее производительней в данной ситуации?
Последний раз редактировалось EnterTheWork 09 сен 2010, 20:09, всего редактировалось 1 раз.
EnterTheWork
UNец
 
Сообщения: 29
Зарегистрирован: 13 июл 2009, 02:26
  • ICQ

Re: Вопрос. Оптимизация скриптов с событиями на Touch

Сообщение Neodrop 09 сен 2010, 19:37

У вас ошибка в коде. Делая ++i вы никогда не обработаете первый элемент массива кнопок. Начните перебор с -1 тогда, раз так написали код.
Ну и лучше перебрать один раз, чем на всех кнопках, конечно.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Вопрос. Оптимизация скриптов с событиями на Touch

Сообщение EnterTheWork 09 сен 2010, 20:04

Спасибо за оперативность!
У меня не массив кнопок, а массив который считает касания пальцем!
И я проверял всегда цикл начинается с 0-го элемента!

А за совет огромное пасиба, я так и думал делать, просто подумал может есть еще какие решения!
EnterTheWork
UNец
 
Сообщения: 29
Зарегистрирован: 13 июл 2009, 02:26
  • ICQ

Re: Вопрос. Оптимизация скриптов с событиями на Touch

Сообщение Paul Siberdt 09 сен 2010, 20:07

Повесьте на камеру единственный скрипт, который проверяет размерность массива touch и, если он в пределах 1-2 - изучайте состояние кнопок. Более двух касаний в touch - это уже, в большинстве случаев, неконтролируемая ситуация, да и удерживать при этом аппарат сложно. :D

Я у себя тоже читаю только два первых касания, остальное игнорирую.
Последний раз редактировалось Paul Siberdt 09 сен 2010, 20:39, всего редактировалось 3 раз(а).
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: (Решено) Вопрос. Оптимизация скриптов с событиями на Touch

Сообщение EnterTheWork 09 сен 2010, 20:21

Спасибо, я человек хоть и рациональный, но про максимально допустимое и оптимальное число нажатий пальцами чего-то не подумал определить! Хотя решение само напрашивается, и так всегда: "Решение перед носом, а ты паришься!"

Сенкс!
EnterTheWork
UNец
 
Сообщения: 29
Зарегистрирован: 13 июл 2009, 02:26
  • ICQ

Re: (Решено) Вопрос. Оптимизация скриптов с событиями на Touch

Сообщение Neodrop 09 сен 2010, 20:30

И я проверял всегда цикл начинается с 0-го элемента!
Странно... Или много пива уже :-?
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: (Решено) Вопрос. Оптимизация скриптов с событиями на Touch

Сообщение EnterTheWork 10 сен 2010, 11:19

Нет, это не пиво - это все наша практика в Великом деле "Шаманства с бубном!"
EnterTheWork
UNец
 
Сообщения: 29
Зарегистрирован: 13 июл 2009, 02:26
  • ICQ


Вернуться в iPhone & Android

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3