кто нить знает алгоритм расположения обьктов как на скрине(красные квадраты),да и надо вообразить что там нету моей криворукости и все ровненько
черных квадратов может быть и 2х3,5х19,100х500,2х4 на скрине 2х2

8gabriel8, Я полагал, что чёрные - юниты/объекты внутри, а красные - юниты/объекты вокруг, вот собственно его задача была расстановка юнитов/объектов вокруг, но ты прав, нужно больше информации.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
23
Похожие вопросы:

ответ
Daniil18, если не знаеш не пиши не по тему!
Нашел буду мучать его в варик делать digspt.ru/topics/32
ответ
Причину нашел что раньше было "xe_RAWCODE_FOOD *-* count" поэтому давали не правильно, но путем поиска нашел причину и исправил на *+*
ответ
Я бы определял принадлежность центров квадрата некой окружности. Не так интуитивно-однозначно как проверка принадлежности всех точек квадрата окружности, но гораздо удобнее с точки зрения реализации. Далее для каждой строки поочередно прогоняем алгоритм заливки(в случае, если заливка подразумевает заливку текстурой почвы - стоит учитывать что каждый квадрат почвы имеет размеры 32/32 и центры мелких квадратиков имеют смещение в 16.), закрашивая почву в пределах новоопределенных ректов. Поочередно построчно, т.к. возможно у вас возникнет ситуация черное-белое-черное-белое и вторая строка (если весь массив прогонять подряд, а не построчно) начнется с черного квадрата. Не вижу каких-либо вытекающих неудобств при разработке..
ответ
Да как хочешь, главное, чтобы тебе и игрокам удобно было. Можно все коэфициенты складывать (то есть броня снижает на 40%, от огня защита 10%, итого урон от огня снижается на 50%), а можно перемножением (в этом случае будет снижение будет 46%).
Результат, сами понимаете, может быть разный.
От перестановки множителей произведение не меняется. Ведь это будет так.
damage * (1 - common armor %) * (1 - fire armor %)

29
Так сказать пища для размышления
от 1-го 2 смещения вправо
от 2-го 2 смещения вниз
от 3-го 2 смещения влево
от 4-го 2 смещения вверх
Алгоритмов может быть несколько, от циклов с проверкой текущего номера куба, до простого назначения переменных
Загруженные файлы
26
Выбираешь центр чёрного квадрата и от него проверяешь проходимость/чёрный_квадрат по четырём сторонам и диагонали, если чисто, то помещать красный квадрат.
цикл А от 0 до 7
Если логическая_переменная равно Да, То равно Нет, Иначе равно Да
Если точка (полярная координата (положение чёрного квадрата) расстояние (Если логическая_переменная равно Да, То 256.00, Иначе 362.04) угол (45хА(цикл))
29
8gabriel8, смещение по диагонали больше, чем обычное. Угловые придётся дополнительно проверять
Ещё не понял, почему цикл 45 градусов?
26
Принцип такой, что если просто сторона, то смещение 256, а если диагональ, то смещение 362.04. Отслеживается сторона и диагональ логической переменной, а 362.04=корень(квадрат256+квадрат256).
26
Это если 4 чёрных квадрата за один считать, а не по отдельности.
29
PrincePhoenix, Алгоритм немного другой, сейчас скину
Через полярки
integer x = 1
location pos = //ваш центр
real distance = //ваш размер квадрата
loop
exitwhen x > 12
    if x == 2 or x == 5 or x == 8 or x == 1 or then
        set pos = PolarProjectionBJ(pos, d*SquareRoot(2), 30*I2R(X)-15) 
    else
        set pos = PolarProjectionBJ(pos, d, 30*I2R(X)-15)
    endif
    set x = x + 1
endloop
На координатах
integer i = 1
real x //X центра
real y //Y центра
real distance //Размер стороны квадрата и одновременно смещение
loop
exitwhen i > 12
    if i == 2 or i == 5 or i == 8 or i == 1 or then
        set x = x + distance*Cos((30*I2R(i)-15) * bj_DEGTORAD)
        set y = y + distance*Sin((30*I2R(i)-15) * bj_DEGTORAD)
    else
        set x = x + (distance*SquareRoot(2))*Cos((30*I2R(i)-15) * bj_DEGTORAD)
        set y = y + (distance*SquareRoot(2))*Sin((30*I2R(i)-15) * bj_DEGTORAD) 
    endif
    set i = i + 1
endloop
Загруженные файлы
26
Тут не закончил
логическая_переменная=Нет
цикл А от 0 до 7
Если логическая_переменная равно Да, То логическая_переменная=Нет, Иначе логическая_переменная=Да
Если точка (полярная координата (положение чёрного квадрата) расстояние (Если логическая_переменная равно Да, То 256.00, Иначе 362.04) угол (45хА(цикл)) проходима/отсутствует_чёрный_квадрат, То разместить в этой точке красный квадрат
29
8gabriel8, Я всё ещё не вдупляю, почему повторений в цикле 8?
26
Он нарисовал четыре чёрных квадрата, а не один большой. Информации предоставил мало, потому исходил из картинки, что надо делать алгоритм появления красных квадратов вокруг чёрного, чтобы не появлялись красные на чёрных. Иначе это стандартная расстановка при найме юнитов в здании.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.