Kịch bản hội thoại, chữ chạy từng ký tự, chân dung, lựa chọn, event. Tiếp...
Classes | |
| struct | njin::dialog_choice |
| Một lựa chọn trả lời trong hộp thoại. Tiếp... | |
| struct | njin::dialog_node |
| Một câu thoại: ai nói, nói gì, rồi đi đâu. Tiếp... | |
| struct | njin::dialog_script |
| Một đoạn hội thoại: nhiều nút nối với nhau. Tiếp... | |
| struct | njin::dialog_style |
| Giao diện của hộp thoại. Tiếp... | |
| struct | njin::dialog_event |
| Event: một câu thoại hoặc lựa chọn có event vừa được kích hoạt. Tiếp... | |
| struct | njin::dialog_ended |
| Event: hội thoại vừa kết thúc. Tiếp... | |
Các hàm | |
| bool | njin::dialog_parse (const json_value &json, dialog_script &out) |
| Đọc một đoạn hội thoại từ JSON (dạng ở njin::dialog_script). | |
| bool | njin::dialog_load (const char *path, dialog_script &out) |
| Nạp một đoạn hội thoại từ file JSON. | |
| dialog_style | njin::dialog_default_style () |
| Giao diện mặc định: hộp tối ở dưới, cùng tông với UI mặc định. | |
| void | njin::dialog_set_style (context &ctx, const dialog_style &style) |
| Đặt giao diện cho hộp thoại. | |
| dialog_style | njin::dialog_get_style (const context &ctx) |
| Giao diện hiện tại. | |
| void | njin::dialog_portrait (context &ctx, const char *name, texture_handle texture, rect source={}) |
| Đăng ký một chân dung để các câu thoại gọi tên ("portrait": "oldman"). | |
| void | njin::dialog_set_condition (context &ctx, std::function< bool(context &, const std::string &)> fn) |
| Hàm kiểm tra điều kiện cond của câu thoại và lựa chọn: nhận chuỗi điều kiện, trả về đúng hay sai. | |
| void | njin::dialog_start (context &ctx, const dialog_script &script, const char *start=nullptr) |
| Bắt đầu một đoạn hội thoại. | |
| void | njin::dialog_say (context &ctx, const char *speaker, const char *text, const char *portrait=nullptr) |
| Nói một câu lẻ, không cần kịch bản: biển báo, đồ vật. | |
| bool | njin::dialog_active (const context &ctx) |
| Hộp thoại có đang mở không. | |
| void | njin::dialog_stop (context &ctx) |
| Đóng hộp thoại ngay (gửi njin::dialog_ended). | |
Kịch bản hội thoại, chữ chạy từng ký tự, chân dung, lựa chọn, event.
| bool njin::dialog_parse | ( | const json_value & | json, |
| dialog_script & | out ) |
Đọc một đoạn hội thoại từ JSON (dạng ở njin::dialog_script).
| json | Dữ liệu. |
| out | Nhận đoạn hội thoại. |
| bool njin::dialog_load | ( | const char * | path, |
| dialog_script & | out ) |
Nạp một đoạn hội thoại từ file JSON.
| path | Đường dẫn. |
| out | Nhận đoạn hội thoại. |
| dialog_style njin::dialog_default_style | ( | ) |
Giao diện mặc định: hộp tối ở dưới, cùng tông với UI mặc định.
| void njin::dialog_set_style | ( | context & | ctx, |
| const dialog_style & | style ) |
Đặt giao diện cho hộp thoại.
| ctx | Context của engine. |
| style | Style. |
| dialog_style njin::dialog_get_style | ( | const context & | ctx | ) |
Giao diện hiện tại.
| ctx | Context của engine. |
| void njin::dialog_portrait | ( | context & | ctx, |
| const char * | name, | ||
| texture_handle | texture, | ||
| rect | source = {} ) |
Đăng ký một chân dung để các câu thoại gọi tên ("portrait": "oldman").
| ctx | Context của engine. |
| name | Tên. |
| texture | Ảnh. |
| source | Vùng trong ảnh. Kích thước 0 là cả ảnh. |
| void njin::dialog_set_condition | ( | context & | ctx, |
| std::function< bool(context &, const std::string &)> | fn ) |
Hàm kiểm tra điều kiện cond của câu thoại và lựa chọn: nhận chuỗi điều kiện, trả về đúng hay sai.
Game tự quyết định cú pháp, ví dụ tên một cờ trong save game ("has_key"), có ! ở đầu để phủ định.
| ctx | Context của engine. |
| fn | Hàm kiểm tra. Để trống thì mọi điều kiện đều đúng. |
| void njin::dialog_start | ( | context & | ctx, |
| const dialog_script & | script, | ||
| const char * | start = nullptr ) |
Bắt đầu một đoạn hội thoại.
Hộp thoại được engine vẽ và điều khiển cho tới khi hết; game chỉ cần nghe event.
Trong lúc mở, hộp thoại nhận Enter, Space, nút A, chuột trái (và mũi tên khi có lựa chọn), nên game không thấy các phím đó. Phím di chuyển của game thì không bị chặn: kiểm tra dialog_active() hoặc bật dialog_style::pause_game.
| ctx | Context của engine. |
| script | Đoạn hội thoại. Được chép lại, nên có thể hủy ngay sau đó. |
| start | Nút bắt đầu, hoặc null cho script.start. |
| void njin::dialog_say | ( | context & | ctx, |
| const char * | speaker, | ||
| const char * | text, | ||
| const char * | portrait = nullptr ) |
Nói một câu lẻ, không cần kịch bản: biển báo, đồ vật.
| ctx | Context của engine. |
| speaker | Người nói, có thể null. |
| text | Nội dung. |
| portrait | Tên chân dung, có thể null. |
| bool njin::dialog_active | ( | const context & | ctx | ) |
Hộp thoại có đang mở không.
| ctx | Context của engine. |
| void njin::dialog_stop | ( | context & | ctx | ) |
Đóng hộp thoại ngay (gửi njin::dialog_ended).
| ctx | Context của engine. |