Tham số sinh màn platformer, nhìn ngang, đi từ trái sang phải. Tiếp...
#include <njin_procgen.h>
Các thuộc tính Public | |
| i32 | width = 120 |
| Số cột. | |
| i32 | height = 30 |
| Số hàng. | |
| noise_desc | surface_noise {.seed = 1, .frequency = 0.04f, .octaves = 3} |
| Nhiễu của mặt đất, theo cột. | |
| i32 | ground_min = 12 |
| Hàng cao nhất mặt đất được lên (hàng tính từ trên xuống). | |
| i32 | ground_max = 24 |
| Hàng thấp nhất mặt đất được xuống. | |
| i32 | max_step = 2 |
| Chênh lệch tối đa giữa hai cột cạnh nhau, tính bằng ô. | |
| i32 | surface_tile = 0 |
| Ô mặt đất (cỏ). | |
| i32 | dirt_tile = 1 |
| Ô dưới mặt đất. | |
| i32 | deep_tile = -1 |
| Ô ở sâu (đá). -1 là dùng dirt_tile. | |
| i32 | deep_depth = 6 |
| Từ độ sâu này (ô tính từ mặt đất) trở xuống là deep_tile. | |
| i32 | slope_r_tile = -1 |
| Ô dốc cao bên phải và cao bên trái (njin::tile_slope_r, njin::tile_slope_l), đặt ở chỗ mặt đất lên hoặc xuống đúng một ô. | |
| i32 | slope_l_tile = -1 |
| Xem slope_r_tile. | |
| noise_desc | cave_noise {.seed = 3, .frequency = 0.09f, .octaves = 2} |
| Nhiễu của hang. | |
| f32 | caves = 0.0f |
| Tỉ lệ diện tích ngầm được đục thành hang, 0 (tắt) đến 0.9. | |
| i32 | cave_margin = 4 |
| Số hàng ngay dưới mặt đất không bị đục hang. | |
| f32 | pit_chance = 0.0f |
| Xác suất bắt đầu một hố ở mỗi cột. 0 là không có hố. | |
| i32 | pit_min = 1 |
| Hố hẹp nhất, tính bằng ô. | |
| i32 | pit_max = 2 |
| Hố rộng nhất. | |
| i32 | safe_columns = 6 |
| Số cột bằng phẳng, không hố, ở mỗi đầu màn (chỗ xuất phát và đích). | |
| f32 | platform_chance = 0.0f |
| Xác suất đặt một bục lơ lửng ở mỗi cột. 0 là không có bục. | |
| i32 | platform_tile = -1 |
| Ô của bục (thường là bục một chiều, njin::tile_one_way). | |
| i32 | platform_min = 3 |
| Bục ngắn nhất. | |
| i32 | platform_max = 5 |
| Bục dài nhất. | |
| i32 | platform_height = 3 |
| Bục cao hơn mặt đất bấy nhiêu ô. Giữ không quá độ cao nhảy. | |
Tham số sinh màn platformer, nhìn ngang, đi từ trái sang phải.
Mặt đất là một đường nhiễu theo cột. Luật giữ cho màn chơi được: hai cột cạnh nhau chênh nhau không quá max_step ô (đặt không quá độ cao nhảy của nhân vật), hang không đục lên sát mặt đất, hố không rộng quá pit_max ô, và hai đầu màn luôn bằng phẳng.
| i32 njin::platformer_gen_desc::slope_r_tile = -1 |
Ô dốc cao bên phải và cao bên trái (njin::tile_slope_r, njin::tile_slope_l), đặt ở chỗ mặt đất lên hoặc xuống đúng một ô.
-1 là không dùng dốc. Nhớ đặt hình cho chúng bằng tilemap_set_shape().
| f32 njin::platformer_gen_desc::caves = 0.0f |
Tỉ lệ diện tích ngầm được đục thành hang, 0 (tắt) đến 0.9.
Là tỉ lệ thật (lấy theo thứ hạng của nhiễu trên đúng những ô được phép): 0.2 là đục chừng 20% số ô nằm dưới cave_margin, bất kể nhiễu có dải giá trị thế nào. Sau đó hang được bo tròn bằng hai lượt automat tế bào và bỏ hốc dưới 8 ô, nên số thật lệch đôi chút. 0.15 đến 0.3 là vừa; hơn nữa là hầm hố.
| i32 njin::platformer_gen_desc::pit_max = 2 |
Hố rộng nhất.
Giữ không quá tầm nhảy xa của nhân vật: njin::platformer_body mặc định chạy 110 px/s và bay chừng 0,54 giây, tức khoảng 59 px, nên hố 2 ô (32 px) còn dư; hố 3 ô (48 px, cộng bề rộng nhân vật) thì phải cất cánh sát mép. Tăng run_speed hoặc jump_speed của nhân vật trước khi tăng số này.