Сейчас 05:53:02 Понедельник, 25 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Дамми и граница карты
qa[S]perДата: Понедельник, 26 Марта 2012, 22:19:08 | Сообщение # 1
7 уровень
Группа: Проверенные
Сообщений: 468
Награды: 0
Репутация: 271
Блокировки:
У меня имеется магия с дамми. Дамми летит вперед пока не встретит противника. А если дамми запустить в границу карты, то он летит вдоль границы. Все было нормально.. но вскоре совсем погнало. Если дамми летит вдоль границы, то выдавало Fatal Error. Я что только не делал.. Ставил блокираторы путей, работал с областями, это помогало.. но каким-то образом все равно выдавало ошибку... Как теперь это исправить? Как можно сделать так, что-бы дамми вообще пропадал у границы...
 

BorodachДата: Понедельник, 26 Марта 2012, 22:23:21 | Сообщение # 2
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
Нужно знать крайние координаты игровой территории:
←MinX
↓MinY
MaxX→
MaxY↑
и при движении проверять, не вылетел ли юнит за них:
//х и у – координаты юнита
Code
if x<MinX then
call SetUnitX(u,MinX)
endif
if y<MinY then
call SetUnitY(u,MinY)
endif
if x>MaxX then
call SetUnitX(u,MaxX)
endif
if y>MaxY then
call SetUnitY(u,MaxY)
endif

- где MinX/Y MaxX/Y – числовые значения


Karamba
 

qa[S]perДата: Понедельник, 26 Марта 2012, 22:24:58 | Сообщение # 3
7 уровень
Группа: Проверенные
Сообщений: 468
Награды: 0
Репутация: 271
Блокировки:
Borodach, у меня все на Гуи, я не разбираюсь в джасе :(
 

BorodachДата: Понедельник, 26 Марта 2012, 22:37:06 | Сообщение # 4
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
Если X of Point(Position of (MY_UNIT)) меньше размера карты влево and Y of Point(Position of (MY_UNIT)) меньше размера карты вниз
то Remove(My_UNIT)
Размер карты можно узнать в Сценарий --> размер карты и границы обзора


Karamba
 

qa[S]perДата: Вторник, 27 Марта 2012, 14:02:06 | Сообщение # 5
7 уровень
Группа: Проверенные
Сообщений: 468
Награды: 0
Репутация: 271
Блокировки:
Borodach, сделал, пропадает только в нижнем углу карты. А по бокам границы нет и выдает ошибку.
 

ExtrematorДата: Вторник, 27 Марта 2012, 14:47:19 | Сообщение # 6
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
странно... я спокойно двигаю юнитов ЗА ГРАНИЦУ карты... и ничего...
нет-нет, не в чёрную границу, в вобще за конец карты... где юнита вообще перестаёт показывать... и обзор его пропадает...

Добавлено (27 Март 2012, 14:47:19)
---------------------------------------------
да блин... а теперь не выходит за карту хДД
хотя тока пару дней назад выходил... я тесты проводил...

вар бредит вообще по жизни...

я вот как то раз создавал юнита в пределах карты, выдавало фатал...

или вот ещё, стандартный скилл, ульт Рексара, не работает пока на карту не поставишь самого Рексара... хотя бы одного хД


что касаемо сабжа темы...
я обычно делаю так...

set P1 = точка под юнитов
set P2 = точка куда нада сдвинуть юнита
дальше проверка
If - если/то/иначе - логическое, область - регион содержит точку P2 = Да
то двигать юнита в точку P2... иначе - ничего... т.е. не будет толкать за карту... или толкать вдоль границы

 

BorodachДата: Вторник, 27 Марта 2012, 14:58:39 | Сообщение # 7
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
qa[S]per, 2 варианта нужна
1) Если X of Point(Position of (MY_UNIT)) меньше размера карты влево and Y of Point(Position of (MY_UNIT)) меньше размера карты вниз
то Remove(My_UNIT)
2)Если X of Point(Position of (MY_UNIT)) больше размера карты вправо and Y of Point(Position of (MY_UNIT)) больше размера карты вверх
то Remove(My_UNIT)


Karamba
 

qa[S]perДата: Вторник, 27 Марта 2012, 17:01:50 | Сообщение # 8
7 уровень
Группа: Проверенные
Сообщений: 468
Награды: 0
Репутация: 271
Блокировки:
Borodach, вроде нормально, работает. Но все равно, в некоторые места долетает и выдает ошибку.
 

BorodachДата: Вторник, 27 Марта 2012, 21:44:51 | Сообщение # 9
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
qa[S]per, Может не верно границу указал... Ты сообщением выводи точку юнита и при достижении края карты, указывай это число

Karamba
 

tRu^SДата: Среда, 28 Марта 2012, 00:26:05 | Сообщение # 10
8 уровень
Группа: Проверенные
Сообщений: 614
Награды: 0
Репутация: 138
Блокировки:
qa[S]per, вошол в регион удалить ДОЛЖНО ПОМОЧЬ Я ТАК ВСЕХ ДАМИ РЕМУВИЛ, ок да)



Сообщение отредактировал tRu^S - Среда, 28 Марта 2012, 00:27:12
 

DreiiДата: Среда, 28 Марта 2012, 00:42:59 | Сообщение # 11
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
tRu^S, +1

 

  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz