Lesson 14 — ECS & Game Architecture
Ba bộ công cụ tương tác: ráp component cho entity và xem system nào áp dụng (+ mini-sim), sơ đồ state machine bấm input để chuyển trạng thái, và camera bám nhân vật trên thế giới lớn.
1. ECS Composer — entity là tổ hợp component
Tích/bỏ component bên dưới. Một entity không phải class — nó "là gì" hoàn toàn do tập component quyết định. Bên phải hiện system nào sẽ chạy trên entity này (system chỉ xử lý entity khớp đủ query của nó).
Component của entity
System áp dụng
Mini-sim: spawn nhiều entity, chạy MovementSystem
Spawn entity ngẫu nhiên. Chỉ entity có cả Position + Velocity mới bị MovementSystem cho di chuyển; thiếu Sprite thì RenderSystem vẽ mờ (vô hình). Đường viền = có Health.
2. State Machine — hành vi nhân vật
Tại mỗi lúc nhân vật ở đúng một trạng thái. Bấm một event → tra bảng chuyển δ(state, event) → cạnh được kích hoạt sáng đỏ, trạng thái mới highlight, nhân vật đổi hành vi. Event không hợp lệ ở trạng thái hiện tại sẽ bị "nuốt".
Trạng thái: Idle
3. Camera Follow — world ↔ screen
Thế giới (1600×1200) lớn hơn màn hình nhiều. Camera là "khung ngắm" (viewport) trượt theo nhân vật. Dùng A/D hoặc nút để di chuyển nhân vật; camera bám mượt bằng nội suy (lò xo — liên hệ L05). Khung trắng = viewport thật sự render lên màn.
k nhỏ → camera trễ & mượt (như lò xo mềm); k = 1 → dính cứng vào nhân vật (dễ giật). Object ngoài viewport (x_screen < 0 hoặc ≥ rộng) bị cull — không vẽ.