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::level_object Struct Tham chiếu

Một object đặt trong editor: điểm xuất hiện, cửa, vùng, quái... Tiếp...

#include <njin_level.h>

Các thuộc tính Public

std::string name
 Tên (Tiled: name; LDtk: iid).
std::string type
 Lớp (Tiled: class hoặc type; LDtk: tên entity).
vec2 size {}
 Kích thước, pixel.
std::vector< vec2 > points {}
 Đỉnh của đa giác hoặc đường gấp khúc, so với transform.pos.
bool ellipse = false
 Object là hình elip (Tiled).
bool closed = true
 Với points: đa giác (đóng) hay đường gấp khúc (mở).
json_value props {}
 Thuộc tính tùy chỉnh (Tiled: properties; LDtk: field).
level_handle level {}
 Level chứa object.

Mô tả chi tiết

Một object đặt trong editor: điểm xuất hiện, cửa, vùng, quái...

Mỗi object thành một entity có transform (tâm của object) và component này. Nếu có prefab trùng tên với type (lớp của object trong Tiled, tên entity trong LDtk), entity được dựng bằng prefab đó; component này được gắn trước khi hàm dựng chạy, nên hàm dựng đọc được thuộc tính:

void build_door(njin::context &ctx, entt::entity e) {
const auto &obj = njin::world(ctx).get<njin::level_object>(e);
const char *target = obj.props["target"].string_or("start");
...
}
entt::registry & world(context &ctx)
Trả về registry của EnTT chứa mọi entity và component của game.
const char * string_or(const char *fallback) const
Chuỗi, hoặc fallback nếu không phải chuỗi.
Definition njin_json.h:129
Một object đặt trong editor: điểm xuất hiện, cửa, vùng, quái...
Definition njin_level.h:62
json_value props
Thuộc tính tùy chỉnh (Tiled: properties; LDtk: field).
Definition njin_level.h:71

Thông tin về Member Data

◆ size

vec2 njin::level_object::size {}

Kích thước, pixel.

0 với điểm.

◆ points

std::vector<vec2> njin::level_object::points {}

Đỉnh của đa giác hoặc đường gấp khúc, so với transform.pos.

Rỗng với hình chữ nhật, hình elip và điểm.