[Вопрос] Проверка местоположения по координатам
|
|
Diabfall | Дата: Четверг, 17 Ноября 2011, 18:26:54 | Сообщение # 1 |
Группа: Проверенные
Сообщений: 1231
Награды: 0
Блокировки:
| Юнит входит в область. Когда он входит справа всё норм (условие подтверждает, что он в области), а когда слева ничего... Code if (GetRectMinX(R[i]) <= GetUnitX(u)) and (GetUnitX(u) <= GetRectMaxX(R[i])) and (GetRectMinY(R[i]) <= GetUnitY(u)) and (GetUnitY(u) <= GetRectMaxY(R[i])) then Как задать проверку на то, что юнит вошёл слева? (т.е. находится в левой части области)
Пробовал писать в условие отрицательно значение, но не помогло.
Сообщение отредактировал Diabfall - Четверг, 17 Ноября 2011, 18:28:00 |
|
|
|
Hexing | Дата: Четверг, 17 Ноября 2011, 18:32:58 | Сообщение # 2 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| Code local real x = GetUnitX(u) local real y = GetUnitY(u) if(x >= GetRectMinX(R[i]) and x <= GetRectMaxX(R[i]) and y <= GetRectMinY(R[i]) and y >= GetRectMaxY(R[i])) then
endif
|
|
|
|
Diabfall | Дата: Четверг, 17 Ноября 2011, 18:41:51 | Сообщение # 3 |
Группа: Проверенные
Сообщений: 1231
Награды: 0
Блокировки:
| Я такое пробовал. Не помогло...
|
|
|
|
Hexing | Дата: Четверг, 17 Ноября 2011, 19:05:01 | Сообщение # 4 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| попробуй это Code if (R[i]==null) then call BJDebugMsg("Ой я пенёк, такой области же нет!!!") endif
|
|
|
|
Diabfall | Дата: Четверг, 17 Ноября 2011, 19:43:16 | Сообщение # 5 |
Группа: Проверенные
Сообщений: 1231
Награды: 0
Блокировки:
|
|
|
|
|
Hexing | Дата: Четверг, 17 Ноября 2011, 19:56:23 | Сообщение # 6 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
|
|
|
|
|
Ty3uK | Дата: Четверг, 17 Ноября 2011, 20:27:27 | Сообщение # 7 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| И зачем делать рукалицо, если он предлагает сделать реальный дебаг?
|
|
|
|
Diabfall | Дата: Четверг, 17 Ноября 2011, 20:44:37 | Сообщение # 8 |
Группа: Проверенные
Сообщений: 1231
Награды: 0
Блокировки:
| Code if (GetRectMinX(R[i]) <= GetUnitX(u)) and (GetUnitX(u) <= GetRectMaxX(R[i])+50) and (GetRectMinY(R[i]) <= GetUnitY(u)) and (GetUnitY(u) <= GetRectMaxY(R[i])+50) then Сделал так, и всё заработало...
Тему можно закрыть.
|
|
|
|
Hexing | Дата: Пятница, 18 Ноября 2011, 13:24:46 | Сообщение # 9 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| рад что помог D:
|
|
|
|