Elemental
Element Of Water
offline
Опыт:
1,072Активность: |
Поиск и замена тайлов в области
Ничего похожего не нашел, поэтому-напишите кто нибудь скрипт по поиску определенного тайла, например, трава-деревня, в определенной области (окружность) радиусом Н и замена на другой тайл, например земля-деревня. Заранее благодарен! |
10.12.2008, 12:01 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Van Damm
wait... what?
offline
Опыт:
22,268Активность: |
Поиск осуществляется перебором ячеек в радиусе и сравнения с нужным типом тайлов с помощью функции
Код:
|
10.12.2008, 12:40 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Toadcop
offline
Опыт:
53,013Активность: |
Van Damm lol ?
Код:
|
10.12.2008, 14:37 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Van Damm
wait... what?
offline
Опыт:
22,268Активность: |
Ну бывает-бывает, это мозги дымятся. |
10.12.2008, 14:45 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Elemental
Element Of Water
offline
Опыт:
1,072Активность: |
Да да Ван Дамм ты б поспал немного.. Даже в гуи есть замена-но там заполняется вся указанная область одним тайлом:( мм, ну с заменой это несложно-проблема в поиске.. Вот например спел точечный - координаты удара определить можно-радиус дан ( =Н ), и как мне дальше построить скрипт-цикл по поиску каждого кусочка травы в моей области? |
10.12.2008, 23:04 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
перебором всех квадратов в радиусе и при соответствии - заменить |
11.12.2008, 02:50 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Elemental
Element Of Water
offline
Опыт:
1,072Активность: |
Да это то все понятно :-D но как будет выглядеть сам текст кода? А главное как определять эти самые квадратики?? |
11.12.2008, 09:15 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
user_jasser
offline
Опыт:
232Активность: |
Elemental
циклом по кругу перебирай через PolarProjection ятп.. |
11.12.2008, 14:00 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
нет не поляром.
http://ru.wikipedia.org/wiki/Квадратура_круга т.е. сторона квадрата a = r*SquareRoot(pi) где r - заданный радиус, pi - пи(3,141592653..) я так понял надо умножать на радиус раз там r = 1 в примере т.е. потом ты проходишься циклом по квадрату ща напишу ScorpioT1000 добавил: Код:
попробуй x ,y - точка где проверять radius - радиус по которому проверять terrainOld - что зменять terrainNew - чем заменять а с area и variation сам разбирайся, я просто перевел все геты в эту ф-цию =) т.е. там в SetTerrainType это есть, хз что это ScorpioT1000 добавил: только тут фича что это для квадрата =) ну если хочешь - попроси Джона, он для круга сделает ^_^ Отредактировано ScorpioT1000, 11.12.2008 в 16:35. |
11.12.2008, 16:25 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Elemental
Element Of Water
offline
Опыт:
1,072Активность: |
Спасибо:) но мне именно для круга надо.. Джон, если ты слышишь:) переделай пожалуйста код с квадрата на окружность Отредактировано ShadoW DaemoN, 30.12.2008 в 19:13. |
12.12.2008, 11:30 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,747Активность: |
круг большой или маленький? если маленький то просто берем квадрат со стороной radius*2 описаный вокруг этой окружности и цыклом проходим по этому квадрату с шагом в 128, соответствено проверяя не больше ли квадрат растоянии от центра до точки чем радиус^2 если большой то так тоже можно, но лучше конешно другой алгоритм, если надо распишу |
12.12.2008, 14:32 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Elemental
Element Of Water
offline
Опыт:
1,072Активность: |
Да, распиши пожалуйста, мне и для радиуса 300 и возможно для более чем в 2000 понадобиться:)
Elemental добавил: Да, распиши пожалуйста, мне и для радиуса 300 и возможно для более чем в 2000 понадобиться:) |
12.12.2008, 21:26 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,747Активность: |
еще вопрос, у тебя радиус обсалютно произвольный? или конечное количество? типо будет выйрыш если сделать предрасчеты для всех растояний или нет.... |
13.12.2008, 12:22 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
Jon, я не понял, что-то ты тормозишь) там вроде все не так сложно, я просто формулу забыл =) |
13.12.2008, 16:30 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Elemental
Element Of Water
offline
Опыт:
1,072Активность: |
Так напиши для радиуса Н и все.. Так и так ведь формулу универсальную писать будешь.. (?) |
13.12.2008, 17:02 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,747Активность: |
непомню чтобы я говорил что это сложно
Код:
Отредактировано Jon, 13.12.2008 в 17:25. |
13.12.2008, 17:19 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Elemental
Element Of Water
offline
Опыт:
1,072Активность: |
Джон, Большое спасибо :)
но Непонимаю зачем все переменные реального типа? Ту же А ты объявляешь реальной а значение даешь целое-зачем? Аналогично и Б и Степ.. Проще не будет если только радиус переводить в целое а эти объявлять целыми? Elemental добавил: Все я понял зачем реальный тип! :))) А в функцию Экшн я так понимаю нужно вставить нечто типа ГетТеррайн-СетТеррайн где координатами будут переменные Х и У?:) |
14.12.2008, 09:58 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,747Активность: |
да
Jon добавил: чет я прогнал, попробуй сделать так... Код:
|
14.12.2008, 13:33 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Elemental
Element Of Water
offline
Опыт:
1,072Активность: |
Написал код из сообщения 15 - при радиусе 256 получается ромб.. Явно что то в формуле не так.. |
14.12.2008, 14:35 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,747Активность: |
256? дык это мало очень
Jon добавил: ну короче вот » code в первом все точно, но второй присзодительнее в четыре раза, однако на соприкосновении четвертей круга могут присходить 2 действия над одной и тойже точкойКод:
|
14.12.2008, 14:59 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|