13

主题

25

回帖

991

积分

优秀创作者

积分
991

夏日·闪闪发光勋章

发表于  2023-7-12 11:17:37 | 显示全部楼层 |阅读模式 1665 3
本帖最后由 EGNE#6985 于 2023-7-12 11:17 编辑


-- main.lua
    -- https://create-bbs.reckfeng.com/ ... wthread&tid=642
    up.game:event("Game-Init", function()
        -- 示例用法
        local noise = require 'noise'
        -- 初始化地形大小和高度范围
        local mapSize = 50
        local maxHeight = 295 * 8

        -- 创建一个地形矩阵
        local map = {}
        for x = 1, mapSize do
            map[x] = {}
            for y = 1, mapSize do
                map[x][y] = 0
            end
        end

        -- 生成地形数据
        for x = 1, mapSize do
            for y = 1, mapSize do
                local frequency = 0.01 -- 频率
                local amplitude = 0.55 -- 振幅
                local persistence = 0.95 -- 持续度
                local octaves = 5 -- 阶数

                local height = 0
                for i = 1, octaves do
                    local octaveX = x * frequency
                    local octaveY = y * frequency
                    height = height + noise(octaveX, octaveY, "12345") * amplitude

                    frequency = frequency * 2
                    amplitude = amplitude * persistence
                end
                height = height * maxHeight
                map[x][y] = height
            end
        end

        -- 绘制地形
        for x = 1, mapSize do
            for y = 1, mapSize do
                local h = math.floor(map[x][y]) // 295 * 295
                local key = nil
                -- 分层染色
                if h > 0 * 295 then
                    key = 134239615 -- 红色
                elseif h <= 0 * 295 then
                    key = 134266735 -- 蓝色
                end
                Cube:creatCube(Util:creatVector(x * 295, y * 295, h), 295, 295, 295, key) -- 此处更换为自己对应的生成代码
            end
        end
    end)

13

主题

25

回帖

991

积分

优秀创作者

积分
991

夏日·闪闪发光勋章

发表于  2023-7-12 11:18:24 | 显示全部楼层
查看另一篇,具体实现方式

53

主题

102

回帖

2369

积分

精英创作者

积分
2369

夏日·活跃之王勋章

发表于  2023-7-20 09:56:21 | 显示全部楼层
66666666666666

0

主题

1

回帖

15

积分

普通创作者

积分
15
发表于  2024-3-21 20:46:55 | 显示全部楼层
Cube:creatCube(Util:creatVector(x * 295, y * 295, h), 295, 295, 295, key) -- 此处更换为自己对应的生成代码                这里要怎么写,Cube是什么,完全不知