Радиус обьекта
|
|
Mudreishii | Дата: Пятница, 16 Марта 2012, 18:33 | Сообщение # 1 |
был не раз
Сейчас нет на сайте
| Всем привет. У меня тут такая глобальная проблема (...ну для вас может ето и мелочи ) сутки мучаюсь... В чом суть: Пытаюсь зделать маленькую игрушку стиля Защита башни (Tower Defense - если в оригинале). Всё было хорошо до тех пор пака не сталкнулся с проблемой РАДИУСА. Значит строю башню (тут всё нормально), и вот теперь у башни должен быть РАДИУС обстрела (вот тут всё и Гэпнулось...) (Изначальна задумал что когда вражеский обьект будет двигаться в нашем обьекте Радиуса то будут происходить столкновения врага с радиусам и башня будет стрелять ) Значит ставлю башню и прикрепляю радиус...Болт! так как радиус покрвает и територию на которую ставяться башни. тобиш где радиус башню поставить уже не можем! Пробывал удалять радиус когда собераюсь ставить новую башню близь первой...Болт! так как потом при появлении радиуса он перекрывает доступ к той второй башни! Пробывал отключать радиус нажатием на башню чтобы можно было получить доступ к второй башни..Болт! так как если мы отключим радиус у башни то стрелять она соответственно не будет пока опять не включим Рад. Пробывал прикрепить радиус не к башне а к врагу..и если вражеский рад. сталкнеться с башней то стреляем...Болт! так как враж. рад. будет перекрывать сцену на каторай башни, и доступа к ним не ведать... Пробывал зделать цыфравой аналог радиуса...Болт! так как координаты дубликатов не изменяються..и сталкивания врага с радиусом не происходит хоть обьект и зашол в наш радиус но кардинаты ево те каторыи и при появлении. Думал опускать радиус на такую глубину чтоб он не перекрывал доступ к другим башням и всётаке был на сцене всёвремя...но тут както тёмно всё так как радиусав будет много и каждый нада опускать на соотвецт. глубину по отношению к таму обьекту на котором стоит база..а если на етом обьекте будет 2базы... вообщем тут я уже сам запутался
Помогите .......ктонибуть Посоветуйте, как можно етат радиус оформить!?
|
|
| |
Caesar | Дата: Пятница, 16 Марта 2012, 18:36 | Сообщение # 2 |
участник
Сейчас нет на сайте
| Mudreishii, впихнуть в башню объект "Ограничитель" и проверять не наличие всего объекта "Башня", а наличие объекта "Ограничитель"?
В бане. Если хотите что-то сказать - пишите в аську 638475702
|
|
| |
Mudreishii | Дата: Пятница, 16 Марта 2012, 18:53 | Сообщение # 3 |
был не раз
Сейчас нет на сайте
| Quote (Caesar) впихнуть в башню объект "Ограничитель" и проверять не наличие всего объекта "Башня", а наличие объекта "Ограничитель"? Можно немного подробней...ато несавсем понял...
|
|
| |
apoptom | Дата: Пятница, 16 Марта 2012, 19:05 | Сообщение # 4 |
постоянный участник
Сейчас нет на сайте
| Делай проверку не через хитТест а через алгоритм расстояния (от башни к башне). Пифагор тебе в помощь.
|
|
| |
ezheka | Дата: Пятница, 16 Марта 2012, 19:24 | Сообщение # 5 |
почетный гость
Сейчас нет на сайте
| Code function distance(x1, y1, x2, y2) { var dx = x2-x1; var dy = y2-y1; return Math.sqrt(dx*dx+dy*dy) } - возвращает расстояние между 2мя обьектами по их координатам.
текущее
|
|
| |
apoptom | Дата: Пятница, 16 Марта 2012, 19:34 | Сообщение # 6 |
постоянный участник
Сейчас нет на сайте
| ezheka, можно тоже самое только компактнее и без отдельной функции
Code distance=Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))
|
|
| |
Mudreishii | Дата: Пятница, 16 Марта 2012, 19:35 | Сообщение # 7 |
был не раз
Сейчас нет на сайте
| Quote (ezheka) - возвращает расстояние между 2мя обьектами по их координатам. У меня обьекты Дубликаты...тоесть когда ани движуться то координаты Х и У не меняються... как тут можно ету формулу припоять??
|
|
| |
ezheka | Дата: Пятница, 16 Марта 2012, 20:10 | Сообщение # 8 |
почетный гость
Сейчас нет на сайте
| Mudreishii, я так понимаю, вы программируете на as2. При создании дубликата, вы должны указывать новое имя для каждой копии (это заложено в языке), по нему можно обращаться к каждому клипу и узнавать его кооринаты. Code Duplicate Movie Clip (исходныйКлип, ИмяКопии, глубина)
текущее
|
|
| |
Mudreishii | Дата: Пятница, 16 Марта 2012, 20:19 | Сообщение # 9 |
был не раз
Сейчас нет на сайте
| ezheka та не.. AS3.0 Просто я создал обьект, зделал из нево муви клип, затем зашол в нево и зделал анимацию движения (при етом создаеться ещо адин муви клип), затем делаю дубликат нашева обьекта и кидаю на сцену! После чево когда запускаю ета всё.. у меня появляеться мой дубликат и начинает двигаться, НО когда я трейсю ево координаты то ани остаються железно без изменений! Вот например указал координаты появления дубликата и всё... он там появляеться начинает двигаться, но координаты такииже в нем как и в той области где он появился! Ета нормально?
|
|
| |
ezheka | Дата: Пятница, 16 Марта 2012, 20:30 | Сообщение # 10 |
почетный гость
Сейчас нет на сайте
| У тебя получается вложенный клип, если ты внутри создал анимацию. Нужно присвоить клипу анимации имя (в свойствах), и обращаться к нему через точку
Code основнойКлип.клипАнимации.x
текущее
|
|
| |
Mudreishii | Дата: Пятница, 16 Марта 2012, 20:51 | Сообщение # 11 |
был не раз
Сейчас нет на сайте
| Хух...получил доступ к координатам как ты и гаварил!
однако что теперь делать с радиусам... так как такая вот штука выходит: Дубликат помещаю на Ось ИКС=450, затем в момент запуска обьекта начинаю трейсить кординаты и первая цыфра -9 вторая -15.8... тоесть хоть обьект и появился по нашей оси 450, но движеться он начинает с кординаты -9...
|
|
| |
ezheka | Дата: Пятница, 16 Марта 2012, 20:58 | Сообщение # 12 |
почетный гость
Сейчас нет на сайте
| потому что идет отсчет от системы координат клипа, в который он вложен. Помести верхний клип в точку 0,0 или при расчете добавляй его координаты к координатам внутреннего клипа.
координаты вложенного клипа относительно экрана = основнойКлип.клипАнимации.x - основнойКлип.x
Хотя, минус вообще никак не влияет на формулу расчета дистанции, если все обьекты внутри другого клипа.
текущее
|
|
| |
Mudreishii | Дата: Пятница, 16 Марта 2012, 21:05 | Сообщение # 13 |
был не раз
Сейчас нет на сайте
| ezheka Посибо большое! Буду експерементировать
|
|
| |