njin
Engine 2D gọn nhẹ để tự tay làm game theo ý mình. Vibe coding cũng ổn luôn
Loading...
Searching...
No Matches
njin::tile_grid Struct Tham chiếu

Một lưới ô hình chữ nhật, kích thước cố định, để sinh và sửa bản đồ trước khi đưa vào njin::tilemap. Tiếp...

#include <njin_procgen.h>

Các hàm thành viên Public

bool inside (i32 x, i32 y) const
 Ô có nằm trong lưới không.
i32 get (i32 x, i32 y) const
 Giá trị một ô.
void set (i32 x, i32 y, i32 tile)
 Đặt một ô; ngoài lưới thì bỏ qua.

Các thuộc tính Public

i32 width = 0
 Số cột.
i32 height = 0
 Số hàng.
std::vector< i32 > cells {}
 Các ô theo hàng, từ trên xuống. cells[y * width + x].

Mô tả chi tiết

Một lưới ô hình chữ nhật, kích thước cố định, để sinh và sửa bản đồ trước khi đưa vào njin::tilemap.

Mỗi ô giữ số thứ tự ô trong tileset, hoặc -1 là trống.

Các bộ sinh (generate_topdown(), generate_platformer(), wfc_generate()) và các luật (grid_majority(), grid_border()...) đều làm việc trên lưới này; xong thì tilemap_from_grid() đặt nó vào tilemap. Lưới chỉ là dữ liệu: không cần cửa sổ, không cần njin::context, nên sinh được ở bất kỳ đâu, kể cả trước khi mở cửa sổ.

Thông tin về hàm thành viên

◆ inside()

bool njin::tile_grid::inside ( i32 x,
i32 y ) const
inline

Ô có nằm trong lưới không.

Các tham số
xCột.
yHàng.
Giá trị trả về
true nếu nằm trong.

◆ get()

i32 njin::tile_grid::get ( i32 x,
i32 y ) const
inline

Giá trị một ô.

Các tham số
xCột.
yHàng.
Giá trị trả về
Số thứ tự ô, -1 nếu trống hoặc ngoài lưới.

◆ set()

void njin::tile_grid::set ( i32 x,
i32 y,
i32 tile )
inline

Đặt một ô; ngoài lưới thì bỏ qua.

Các tham số
xCột.
yHàng.
tileSố thứ tự ô, -1 là trống.