Tham số sinh bản đồ top-down. Tiếp...
#include <njin_procgen.h>
Các thuộc tính Public | |
| i32 | width = 64 |
| Số cột. | |
| i32 | height = 64 |
| Số hàng. | |
| noise_desc | height_noise {} |
| Nhiễu độ cao. | |
| noise_desc | moisture_noise {.seed = 7919, .frequency = 0.03f, .octaves = 3} |
| Nhiễu độ ẩm. Chỉ dùng khi có vùng đặt max_moisture dưới 1. | |
| std::vector< biome > | biomes {} |
| Các vùng, xét theo thứ tự. Ô không khớp vùng nào dùng vùng cuối. | |
| f32 | island = 0.0f |
| 0 là tắt. | |
| bool | normalize = true |
| Kéo giãn độ cao (và độ ẩm) để ô thấp nhất của bản đồ là 0 và ô cao nhất là 1. | |
| i32 | smooth = 1 |
| Số lần grid_majority(). 0 là tắt. | |
| i32 | min_region = 6 |
| grid_merge_small(): vùng nhỏ hơn số ô này bị hoà vào xung quanh. | |
| std::vector< i32 > | walkable {} |
| Các ô đi được. | |
| i32 | blocked_tile = -1 |
| Ô thay cho vùng đi được bị bỏ, khi có walkable. | |
| i32 | border_tile = -1 |
| Ô cho vòng tường bao quanh bản đồ. -1 là không có. | |
Tham số sinh bản đồ top-down.
Mặc định (chỉ cần biomes): một độ cao từ nhiễu, chia vùng theo ngưỡng, làm mượt một lần, bỏ vùng dưới 6 ô. Thêm dần: độ ẩm để có sa mạc và rừng cùng độ cao, island cho hình hòn đảo, walkable để mọi chỗ đi được liền một khối, border_tile cho tường bao.
| f32 njin::topdown_gen_desc::island = 0.0f |
0 là tắt.
0.5 đến 1: độ cao giảm dần về mép, thành hòn đảo giữa nước.
| bool njin::topdown_gen_desc::normalize = true |
Kéo giãn độ cao (và độ ẩm) để ô thấp nhất của bản đồ là 0 và ô cao nhất là 1.
Bật (mặc định) thì ngưỡng của biomes đọc như phần trăm của bản đồ: max_height = 0.3 là khoảng 30% thấp nhất. Tắt thì ngưỡng so thẳng với nhiễu, mà nhiễu fBm hiếm khi ra ngoài khoảng 0.2 đến 0.8.
| i32 njin::topdown_gen_desc::min_region = 6 |
grid_merge_small(): vùng nhỏ hơn số ô này bị hoà vào xung quanh.
0 là tắt.
| std::vector<i32> njin::topdown_gen_desc::walkable {} |
Các ô đi được.
Có thì chỉ giữ vùng đi được liền nhau lớn nhất (grid_keep_largest()), và điểm xuất phát nằm trong vùng đó.