christianessl / landmap-generation
使用PHP生成像素化的随机世界地图。
1.0.0
2019-02-26 19:28 UTC
This package is auto-updated.
Last update: 2024-09-06 13:35:48 UTC
README
使用PHP生成像素化的随机世界地图。
这是一个简单的PHP实现的陆地地图生成器。它支持生成高度图,设置水位,着色和阴影。输出的结果将以像素风格呈现。
1. 安装
composer require christianessl/landmap-generation
.
2. 使用方法
require __DIR__ . '/vendor/autoload.php'; use ChristianEssl\LandmapGeneration\Settings as Settings; use ChristianEssl\LandmapGeneration\Generator as Generator; use ChristianEssl\LandmapGeneration\Color as Color; use ChristianEssl\LandmapGeneration\Color\Shader as Shader; use ChristianEssl\LandmapGeneration\Enum as Enum; use ChristianEssl\LandmapGeneration\Utility as Utility; $seed = 'otters_are_awesome!'; $settings = (new Settings\MapSettings()) ->setColorScheme(new Color\DefaultColorScheme(new Shader\FlatShader())) ->setWidth(500) ->setHeight(300) ->setWaterLevel(60); $landmapGenerator = new Generator\LandmapGenerator($settings, $seed); $map = $landmapGenerator->generateMap(); $image = Utility\ImageUtility::createImage($map); Utility\ImageUtility::outputImage($image, Enum\FileType::PNG);
3. 示例输出
500x300像素
种子: 'otters_are_awesome!'
60% 水域,平面着色器
30% 水域,平面着色器
60% 水域,详细着色器
60% 水域,无着色器
4. 配置选项
类 MapSettings
类 DefaultColorScheme
类 LandmapGenerator
实现的着色器
待办事项
- 实现一个用于示例的Perlin噪声算法(比钻石-平方法快得多)
- 重构和解耦ImageUtility
- 可能缓存高度图生成(可能作为JSON树?)
- 将钻石-平方算法移植到GO(在另一个项目中)并添加选项将PHP项目连接到GO库