![]()
Elemental
Element Of Water
![]() offline
Опыт:
1,072Активность: |
Поиск и замена тайлов в области
Ничего похожего не нашел, поэтому-напишите кто нибудь скрипт по поиску определенного тайла, например, трава-деревня, в определенной области (окружность) радиусом Н и замена на другой тайл, например земля-деревня. Заранее благодарен! |
![]() |
#1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Van Damm
wait... what?
![]() ![]() offline
Опыт:
19,568Активность: |
Поиск осуществляется перебором ячеек в радиусе и сравнения с нужным типом тайлов с помощью функции
Код:
|
![]() |
#2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Toadcop
![]() ![]() offline
Опыт:
53,013Активность: |
Van Damm lol ?
Код:
|
![]() |
#3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Van Damm
wait... what?
![]() ![]() offline
Опыт:
19,568Активность: |
Ну бывает-бывает, это мозги дымятся. |
![]() |
#4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Elemental
Element Of Water
![]() offline
Опыт:
1,072Активность: |
Да да Ван Дамм ты б поспал немного.. Даже в гуи есть замена-но там заполняется вся указанная область одним тайлом:( мм, ну с заменой это несложно-проблема в поиске.. Вот например спел точечный - координаты удара определить можно-радиус дан ( =Н ), и как мне дальше построить скрипт-цикл по поиску каждого кусочка травы в моей области? |
![]() |
#5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ScorpioT1000
Работаем
![]() ![]() offline
Опыт: отключен
|
перебором всех квадратов в радиусе и при соответствии - заменить |
![]() |
#6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Elemental
Element Of Water
![]() offline
Опыт:
1,072Активность: |
Да это то все понятно :-D но как будет выглядеть сам текст кода? А главное как определять эти самые квадратики?? |
![]() |
#7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
user_jasser
![]() offline
Опыт:
232Активность: |
Elemental
циклом по кругу перебирай через PolarProjection ятп.. |
![]() |
#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. |
![]() |
#9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Elemental
Element Of Water
![]() offline
Опыт:
1,072Активность: |
Спасибо:) но мне именно для круга надо.. Джон, если ты слышишь:) переделай пожалуйста код с квадрата на окружность Отредактировано ShadoW DaemoN, 30.12.2008 в 19:13. |
![]() |
#10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
J
expert
![]() offline
Опыт:
47,997Активность: |
круг большой или маленький? если маленький то просто берем квадрат со стороной radius*2 описаный вокруг этой окружности и цыклом проходим по этому квадрату с шагом в 128, соответствено проверяя не больше ли квадрат растоянии от центра до точки чем радиус^2 если большой то так тоже можно, но лучше конешно другой алгоритм, если надо распишу |
![]() |
#11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Elemental
Element Of Water
![]() offline
Опыт:
1,072Активность: |
Да, распиши пожалуйста, мне и для радиуса 300 и возможно для более чем в 2000 понадобиться:)
Elemental добавил: Да, распиши пожалуйста, мне и для радиуса 300 и возможно для более чем в 2000 понадобиться:) |
![]() |
#12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
J
expert
![]() offline
Опыт:
47,997Активность: |
еще вопрос, у тебя радиус обсалютно произвольный? или конечное количество? типо будет выйрыш если сделать предрасчеты для всех растояний или нет.... |
![]() |
#13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ScorpioT1000
Работаем
![]() ![]() offline
Опыт: отключен
|
Jon, я не понял, что-то ты тормозишь) там вроде все не так сложно, я просто формулу забыл =) |
![]() |
#14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Elemental
Element Of Water
![]() offline
Опыт:
1,072Активность: |
Так напиши для радиуса Н и все.. Так и так ведь формулу универсальную писать будешь.. (?) |
![]() |
#15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
J
expert
![]() offline
Опыт:
47,997Активность: |
непомню чтобы я говорил что это сложно
Код:
Отредактировано Jon, 13.12.2008 в 17:25. |
![]() |
#16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Elemental
Element Of Water
![]() offline
Опыт:
1,072Активность: |
Джон, Большое спасибо :)
но Непонимаю зачем все переменные реального типа? Ту же А ты объявляешь реальной а значение даешь целое-зачем? Аналогично и Б и Степ.. Проще не будет если только радиус переводить в целое а эти объявлять целыми? Elemental добавил: Все я понял зачем реальный тип! :))) А в функцию Экшн я так понимаю нужно вставить нечто типа ГетТеррайн-СетТеррайн где координатами будут переменные Х и У?:) |
![]() |
#17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
J
expert
![]() offline
Опыт:
47,997Активность: |
да
Jon добавил: чет я прогнал, попробуй сделать так... Код:
|
![]() |
#18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Elemental
Element Of Water
![]() offline
Опыт:
1,072Активность: |
Написал код из сообщения 15 - при радиусе 256 получается ромб.. Явно что то в формуле не так.. |
![]() |
#19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
J
expert
![]() offline
Опыт:
47,997Активность: |
256? дык это мало очень
Jon добавил: ну короче вот » code в первом все точно, но второй присзодительнее в четыре раза, однако на соприкосновении четвертей круга могут присходить 2 действия над одной и тойже точкойКод:
|
![]() |
#20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|