o Scenario Loader: Phân h đặc tả trước bên ngoài
o Scenario Ending: Phân h đổi, bổ sung hay thêm các phân hệ này trong phầ
o Computer AI: Phân h
bổ sung hay thêm các AI khác nhau (xem chi ti 4.4.5)
4.4.2. Kiến trúc xử lý, phát si
Trong game, chúng em s game chỉ load 1 lần duy nh 1 lớp Factory có nhiệm v lưu thông tin vào Entity tương
Hình 4.7
t có thêm trong game (xem chi tiết vể phân hệ
: Phân hệ này nhằm giúp nạp game từ file scenario đ c bên ngoài (xem chi tiết vể phân hệ này trong phần 4.4
: Phân hệ này nhằm đảm bảo game có khả năng d
sung hay thêm các sự kiện kết thúc màn chơi khác nhau (xem chi ti ần 4.4.4)
: Phân hệ này nhằm đảm bảo game có khả năng dễ sung hay thêm các AI khác nhau (xem chi tiết vể phân hệ
lý, phát sinh đối tượng
Trong game, chúng em sử dụng cơ chế quản lý tập trung, tất cả dữ
n duy nhất lúc khởi tạo game. Với mỗi thực thể trong game s m vụ đọc dữ liệu theo cấu trúc định nghĩa sẵn trong file xml lưu thông tin vào Entity tương ứng.
Sơ đồ các lớp khởi tạo và phát sinh đối tượng
này trong phần
file scenario đã được 4.4.3)
năng dễ dàng thay (xem chi tiết vể
ễ dàng thay đổi, này trong phần
ữ liệu thông tin trong game sẽ có n trong file xml và
Việc tạo lập này được xử lý theo kiến trúc được đề nghị ở hình , tương ứng với mỗi loại thực thể cho trước như Unit, Building, Map,… sẽ có một lớp đối tượng chuyên tạo lập các đối tượng thuộc về nhóm tương ứng. Ví dụ như UnitFactory chuyên để xử lý, tạo lập các đối tượng về Unit,... Ở đây, cấu trúc về các thực thể trong game được chia làm 2 nhóm: nhóm Visible là những đối tượng có khả năng hiển thị trên màn hình nên được cung cấp một phương thức là Render() dùng để hiển thị đối tượng, và những đối tượng khác được xử lý về mặt logic trong game nhưng không có nhu cầu hiển thị trên màn hình như Card hay Ability. Tương ứng với mỗi loại thực thể (Entity) có trong game sẽ được quản lý việc tạo lập bởi một lớp đối tượng cụ thể kế thừa từ EntityFactory tương ứng.
Với kiến trúc trên, khi cần tạo một thực thể thật sự, ta chỉ cần gọi hàm Create() với tham số là ID của Entity cần tạo trong lớp Factory tương ứng với loại thực thể.