Добавлен , опубликован
Алгоритмы, Наработки и Способности
Способ реализации:
cJass
Тип:
Наработка
Версия Warcraft:
1.26а
Наработка позволяет поднимать рельеф из карты высот (массива). В качестве примера выбран шум Перлина. Вы можете использовать свою функцию генерации для создания подходящего рельефа.
call HeightMap.build(real x_offset, real y_offset, Real2D map)
Code
library LibHeightMap requires LibReal2D
struct HeightMap
    private static location L = Location(0,0)
    private static real Size = 128.
    static real max = 450//1200.
    static real min = -450//-700
    
    static method build takes real dx, real dy, Real2D map returns nothing
        integer opt = 0
        real height = -max
        integer x = map.length
        TriggerSleepAction(0.)
        loop
        exitwhen x < 0
            integer y = map.width
            loop
            exitwhen y < 0
                real rx = dx+x*Size
                real ry = dy+y*Size
                MoveLocation(L, rx, ry)
                real h = GetLocationZ(L)
                TerrainDeformCrater(rx, ry, Size, -min+height*map.getr(x,y)+h, 1, true)
                opt++
                if opt >= 2500
                    TriggerSleepAction(0.)
                    opt = 0
                endif
            y--
            endloop
        x--
        endloop
    endmethod
endstruct

endlibrary
Для установки скопируйте папку HeightMap к себе в карту.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.