Bảng tra nhanh: tìm việc bạn muốn làm ở cột trái, dùng thứ ở cột giữa, đọc trang ở cột phải. Mọi thứ nằm trong njin:: và chỉ cần #include <njin.h>. Muốn xem đầy đủ tham số của một hàm thì bấm vào tên nó, hoặc vào Nhóm API.
| Muốn | Dùng | Xem |
| Mở cửa sổ, chạy, đóng | njin::create(), njin::run(), njin::destroy() | Bắt đầu |
| Thoát game từ trong game | njin::quit() | Cửa sổ, file và lưu game |
| Gom logic của game vào một chỗ | njin::mod_desc với setup, đăng ký bằng njin::mod_register() | Module, system và phase |
| Chạy một hàm mỗi frame, hay một lần lúc bắt đầu | njin::ecs_register() với một njin::sys_phase | Vòng lặp game |
| Vật lý chạy đều, không phụ thuộc FPS | phase_fixed_update | Thời gian, fixed update, timer và tween |
| Tạo entity, gắn component | njin::world() rồi registry.create(), emplace<>() | Entity, component và event |
| Báo tin giữa các system | njin::events() | Entity, component và event |
| Tạo nhiều entity giống nhau (quái, đạn) | njin::prefab_register(), njin::prefab_spawn() | Prefab và transform cha–con |
| Chia game thành menu, màn chơi, game over | njin::scene_register(), njin::scene_set() | Scene |
| Chuyển cảnh mờ dần | njin::scene_fade() | Scene |
| Muốn | Dùng | Xem |
| Nhân vật platformer chạy, nhảy | njin::platformer_body + njin::platformer_input_map | Nhân vật nhảy được trong 50 dòng, Làm game platformer |
| Nhảy đôi, trượt tường, nhảy tường | air_jumps, wall_slide_speed, wall_jump của njin::platformer_body | Làm game platformer |
| Nhân vật top-down đi 8 hướng, lướt | njin::topdown_body + njin::topdown_input_map | Nhân vật đi 8 hướng trong 50 dòng, Làm game top-down |
| Đẩy lùi khi trúng đòn | ghi thẳng vào velocity của body | Làm game platformer |
| Bục di chuyển, lính gác đi tuần | njin::path_mover | Làm game platformer |
| Quái đuổi theo, tìm đường tránh tường | njin::nav_grid_from_world(), njin::nav_find_path(), njin::nav_steer() | Làm game top-down |
| Cho một vật chạy tới một điểm trong một khoảng thời gian | njin::tween_move() | Màn hình ảo, hẹn giờ và tween |
| Tự viết bộ điều khiển di chuyển | njin::collision_move() | Va chạm |
| Muốn | Dùng | Xem |
| Cho vật có hình va chạm | njin::collider (hộp hoặc tròn) | Va chạm |
| Biết hai vật vừa chạm nhau (đạn trúng quái, nhặt đồ) | event njin::collision_enter, njin::collision_exit, trigger = true | Va chạm |
| Chọn cái gì va chạm với cái gì | layer và mask của njin::collider, njin::layer_bit() | Va chạm |
| Tường và mặt đất từ bản đồ ô | collider collider_tiles trên entity của njin::tilemap | Va chạm, Tilemap |
| Có gì trong vùng đánh, vùng nổ, dưới con chuột | njin::collision_overlap_rect(), njin::collision_overlap_circle(), njin::collision_overlap_point() | Va chạm |
| Bắn tia, kiểm tra tầm nhìn | njin::collision_raycast(), njin::collision_line_of_sight() | Va chạm, Làm game top-down |
| Nhìn thấy khung va chạm để debug | njin::collision_set_debug() | Va chạm |
| Muốn | Dùng | Xem |
| Vẽ bản đồ ô vuông bằng code | njin::tilemap, njin::tilemap_set() | Tilemap |
| Viết bản đồ bằng chữ, mỗi ký tự một ô (không cần Tiled hay LDtk) | njin::tilemap_from_text(), njin::tilemap_from_rows() | Tilemap |
| Ô là dốc, bục một chiều, không va chạm | njin::tilemap_set_shape() | Làm game platformer |
| Nước, đuốc chuyển động | njin::tilemap_animate() | Tilemap |
| Tự sinh bản đồ top-down (đảo, vùng đất) từ nhiễu | njin::generate_topdown(), njin::noise_2d() | Sinh bản đồ tự động |
| Tự sinh màn platformer chơi được (hố, hang, bục) | njin::generate_platformer() | Sinh bản đồ tự động |
| Làm bản đồ sinh ra bớt vụn: xoá chấm lẻ, thêm viền, rải hoa | njin::grid_majority(), njin::grid_border(), njin::grid_scatter() | Sinh bản đồ tự động |
| Góc bo tròn tự nhiên cho đất, nước, tường (autotile) | njin::grid_autotile(), njin::autotile_index() | Bo góc tự nhiên: autotile |
| Sinh bản đồ bằng Wave Function Collapse, từ mẫu hoặc luật tự viết | njin::wfc_learn(), njin::wfc_generate() | Sinh bản đồ tự động |
| Đưa lưới sinh ra vào tilemap | njin::tilemap_from_grid() | Sinh bản đồ tự động |
| Nạp màn chơi vẽ trong Tiled hoặc LDtk | njin::level_load(), njin::level_load_ldtk() | Level từ Tiled và LDtk |
| Tìm điểm xuất hiện, cửa, quái đặt trong màn | njin::level_find() | Level từ Tiled và LDtk |
| Xem ô nào ở vị trí nào, có chạm ô không | njin::tilemap_cell_at(), njin::tilemap_overlaps(), njin::tilemap_move() | Tilemap |
| Muốn | Dùng | Xem |
| Vẽ hình chữ nhật, tròn, đường thẳng | njin::draw_rect(), njin::draw_circle(), njin::draw_line() | Vẽ hình và chữ |
| Vẽ chữ (kể cả tiếng Việt) | njin::draw_text(), njin::font_load() | Vẽ hình và chữ |
| Đo hay ngắt dòng chữ | njin::text_measure(), njin::text_wrap() | Vẽ hình và chữ |
| Nạp và vẽ ảnh | njin::texture_load(), njin::texture_draw() | Vẽ ảnh và shader |
| Ảnh pixel art không bị mờ | njin::texture_set_filter() với filter_nearest | Vẽ ảnh và shader |
| Nhân vật có ảnh | njin::sprite | Sprite và animation |
| Sắp xếp ai đứng trước ai (top-down) | njin::draw_set_y_sort() | Làm game top-down |
| Ghép nhiều ảnh nhỏ vào một trang | njin::atlas_create(), njin::atlas_load() | Vẽ ảnh và shader |
| Ánh sáng: đèn điểm, đèn nón, đèn hướng, ban đêm, mặt trời | njin::lighting_set(), njin::light_2d | Ánh sáng 2D (PBR) |
| Bóng đổ đúng từng pixel của sprite (cây, bụi, đá, nhân vật) | njin::light_occluder_pixels | Ánh sáng 2D (PBR) |
| Bóng đổ từ tường, hàng rào, hình hình học | njin::light_occluder, njin::light_occluder_capsule(), njin::light_occluder_sprite | Ánh sáng 2D (PBR) |
| Bóng đổ từ tường của tilemap | njin::light_occluders_from_tiles() | Ánh sáng 2D (PBR) |
| Sprite nổi khối, kim loại, bóng gương dưới đèn | sprite::normal, sprite::material (PBR, xếp kênh MRA như raylib) | Ánh sáng 2D (PBR) |
| Sprite tự phát sáng (hoa dạ quang, mắt quái, cửa sổ) | sprite::emissive, sprite::emissive_power | Ánh sáng 2D (PBR) |
| Đổi cách nén HDR (Reinhard, ACES) | njin::lighting_desc::tonemap | Ánh sáng 2D (PBR) |
| Shader riêng | njin::shader_load(), njin::shader_set_f32() | Vẽ ảnh và shader |
| Shader đọc thêm một ảnh (bảng màu, nhiễu, mặt nạ) | njin::shader_set_texture() | Shader nâng cao: ảnh phụ, mảng uniform, ánh sáng |
| Shader nhận một danh sách (các nguồn sáng) | njin::shader_set_vec4_array() | Shader nâng cao: ảnh phụ, mảng uniform, ánh sáng |
| Một shader chạy trên cả khung hình: đêm có đèn, hoàng hôn, sương mù | njin::camera_set_post_shader() kèm ảnh phụ và mảng uniform | Shader nâng cao: ảnh phụ, mảng uniform, ánh sáng |
| Vẽ hàng nghìn hình giống nhau bằng một lệnh vẽ | njin::instance_buffer_create(), njin::draw_instanced() | Instancing: hàng nghìn hình bằng một lệnh vẽ |
| Lưu render texture (sprite sheet đã bake) ra PNG | njin::render_texture_save() | Vẽ trước một lần, đọc lại mỗi frame |
| Vẽ trước các hình vào một sprite sheet, đọc lại mỗi frame | njin::render_texture_begin(), njin::draw_instanced() kèm render texture, njin::render_texture_set_filter() | Vẽ trước một lần, đọc lại mỗi frame |
| Thanh máu, vòng hồi chiêu, bóng đổ vẽ bằng công thức (SDF) | njin::shader_begin() quanh một ảnh kéo giãn, njin::shader_set_vec2() | Bài 11: SDF: vẽ hình bằng khoảng cách |
| Vẽ vào một ảnh ngoài màn hình | njin::render_texture_load(), njin::render_texture_begin() | Vẽ ảnh và shader |