|
| level_handle | njin::level_load (context &ctx, const char *path, const level_desc &desc={}) |
| | Nạp một bản đồ và tạo entity cho nó.
|
| level_handle | njin::level_load_ldtk (context &ctx, const char *path, const char *level, const level_desc &desc={}) |
| | Nạp một level cụ thể từ project LDtk.
|
| bool | njin::level_list_ldtk (const char *path, std::vector< std::string > &out) |
| | Tên mọi level trong một project LDtk, theo thứ tự trong editor.
|
| void | njin::level_unload (context &ctx, level_handle level) |
| | Hủy mọi entity mà level đã tạo và giải phóng ảnh của nó.
|
| vec2 | njin::level_size (const context &ctx, level_handle level) |
| | Kích thước level, pixel.
|
| vec2 | njin::level_origin (const context &ctx, level_handle level) |
| | Góc trên trái của level trong thế giới.
|
| const json_value & | njin::level_properties (const context &ctx, level_handle level) |
| | Thuộc tính tùy chỉnh của cả bản đồ (Tiled) hoặc của level (LDtk).
|
| entt::entity | njin::level_find (context &ctx, level_handle level, const char *name) |
| | Tìm object đầu tiên của level có tên (hoặc, nếu không có tên nào khớp, lớp) là name.
|
Nạp bản đồ từ Tiled và LDtk thành entity, tilemap và collider.
Nạp một bản đồ và tạo entity cho nó.
Nhận file từ Tiled (.tmx, .tmj, hoặc .json xuất từ Tiled) và LDtk (.ldtk, nạp level đầu tiên; dùng level_load_ldtk() để chọn level). Tileset, ảnh và level tách file được tìm cạnh file bản đồ.
Tạo ra:
- mỗi layer ô: một entity có transform và njin::tilemap (một layer dùng nhiều tileset thì một entity cho mỗi tileset); layer vật cản có thêm njin::collider collider_tiles;
- mỗi layer IntGrid của LDtk: một tilemap ẩn, giá trị ô là giá trị IntGrid (1, 2, ...), đọc bằng tilemap_get(); layer vật cản có thêm collider;
- mỗi object: một entity có transform và njin::level_object, dựng bằng prefab trùng tên với lớp của nó nếu có. Object hình ô (tile object) có thêm njin::sprite.
Chỉ nhận bản đồ lưới vuông (orthogonal), loại mà game top-down và platformer dùng; bản đồ isometric, lục giác bị từ chối (trả về handle id 0, có ghi log). Hỗ trợ bản đồ vô hạn, layer lồng nhau, dữ liệu CSV, base64, zlib, gzip. Chưa hỗ trợ (có cảnh báo): nén zstd, ô xoay chéo, tileset nhiều ảnh, ô animation.
- Các tham số
-
| ctx | Context của engine. |
| path | Đường dẫn file bản đồ. |
| desc | Cách nạp. |
- Giá trị trả về
- Handle của level, hoặc handle id 0 nếu lỗi (có ghi log).