Положение курсора
|
|
Marlon_Wayens | Дата: Воскресенье, 02 Августа 2015, 16:08 | Сообщение # 1 |
частый гость
Сейчас нет на сайте
| Здравствуйте. Такая вот проблема возникла: Есть массив с Rect координатами, и нужно проверить в какой из них попадает курсор мыши. Понимаю, что надо через rect.contains, но если перебирать циклом, то получается долго. Дак вот может кто знает =)
|
|
| |
Левша | Дата: Воскресенье, 02 Августа 2015, 16:38 | Сообщение # 2 |
почти ветеран
Сейчас нет на сайте
| А в чем проблема с циклом ? Вынеси цикл в корутину и пусть себе перебирает на здоровье.
X.cor.R (Prologue)
|
|
| |
Marlon_Wayens | Дата: Воскресенье, 02 Августа 2015, 16:47 | Сообщение # 3 |
частый гость
Сейчас нет на сайте
| Левша, просто получалось, что он долго перебирал элементы пока не доходил до нужного.
|
|
| |
Левша | Дата: Воскресенье, 02 Августа 2015, 19:53 | Сообщение # 4 |
почти ветеран
Сейчас нет на сайте
| Цитата Marlon_Wayens ( ) он долго перебирал элементы Ужас... это сколько ж там элементов у тебя ? Может алгоритм поиска неверный ?
X.cor.R (Prologue)
|
|
| |
Marlon_Wayens | Дата: Понедельник, 03 Августа 2015, 18:14 | Сообщение # 5 |
частый гость
Сейчас нет на сайте
| Левша, ну у меня 60 элементов. Это не то что долго, просто получается задержка, где то 1,5 - 2 сек, где то её вообще нет.
|
|
| |
KamiRonin | Дата: Понедельник, 03 Августа 2015, 19:50 | Сообщение # 6 |
почти ветеран
Сейчас нет на сайте
| это всегда сложная задача.. ее нужно решать через хитрые способы. например, попробуй способ на эвентах: 1. в классе менеджере (где главный запрос на попадание проводится) - сделай эвент с делегатом, в котором параметр - Vector2. И добавь менеджеру поле со списком классов Rector (будет понятно дальше). 2. сделай отдельный мини класс (ну скажем - "Rector" ), в котором есть только поле Rect и функция X - обработки попадания в него. 3. функция Х должна заносить ссылку на свой класс -- в поле со списком менеджера, только когда присланные координаты попали в его рект. 4. при создании нового Rector'a - просто подписывай его на главный эвент с делегатом (это нужно всего один раз), и отписывай при уничтожении. 5. запуск эвента выглядит, как вызов одной единственной функции! и после этого можно проверять список сработавших ректов в поле. выгода в том, что обработка происходит "одновременно" (на самом деле нет, но выглядит так), и список попаданий содержит сразу всех задетых ректов. там есть пара тонкостей, которые я специально не описываю.. ну что б ты думал, чтобы пытался!!...
Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
Сообщение отредактировал KamiRonin - Понедельник, 03 Августа 2015, 19:50 |
|
| |
Левша | Дата: Понедельник, 03 Августа 2015, 19:58 | Сообщение # 7 |
почти ветеран
Сейчас нет на сайте
| Цитата Marlon_Wayens ( ) у меня 60 элементов. Это не то что долго, просто получается задержка, где то 1,5 - 2 сек Вы что прикалываетесь ? На перебор 60 элементов у вас 2 сек уходит ? Это даже для первого пня было бы долго...
Цитата KamiRonin ( ) это всегда сложная задача.. Где тут сложная задача ?
Marlon_Wayens, выложите свой код, вы что совсем не то делаете...
X.cor.R (Prologue)
Сообщение отредактировал Левша - Понедельник, 03 Августа 2015, 19:59 |
|
| |
KamiRonin | Дата: Понедельник, 03 Августа 2015, 20:05 | Сообщение # 8 |
почти ветеран
Сейчас нет на сайте
| Цитата Левша ( ) Где тут сложная задача ? в том, чтобы найти творческий и одновременно эффективный подход в рутинной задаче! ) не все же в жизни переборами фигачить!?
Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
|
|
| |
Marlon_Wayens | Дата: Понедельник, 03 Августа 2015, 21:14 | Сообщение # 9 |
частый гость
Сейчас нет на сайте
| Ну вообщем всем большое спасибо. Решил проблему, обошел другим способом =) Спасибо что потратили на меня время.
|
|
| |
Левша | Дата: Вторник, 04 Августа 2015, 13:08 | Сообщение # 10 |
почти ветеран
Сейчас нет на сайте
| Цитата KamiRonin ( ) найти творческий и одновременно эффективный подход в рутинной задаче! В этом, я с вами полностью согласен.
X.cor.R (Prologue)
|
|
| |