Một ví dụ khác về nút chuỗi (Sequence) (Simpson, 2014)

Một phần của tài liệu Thiết kế mô hình tri giác và nhận thức cho các npcs trong stealth game (Trang 60 - 61)

Trong ví dụ trên, nút chuỗi không chỉ định nghĩa một chuỗi các hành động mà còn có cả các kiểm tra điều kiện (tests). Các nút con kiểm tra xem nhân vật có đói không, có thức ăn không, có kẻ thù xung quanh không và chỉ khi tất cả những điều này trả về Success cho nút chuỗi, nhân vật đó mới ăn thức ăn. Sử dụng các chuỗi như thế này cho

phép chúng ta kiểm tra một hoặc nhiều điều kiện trước khi thực hiện một hành động. Tương tự với câu lệnh if và với cổng AND trong vi mạch. Vì tất cả các nút con cần phải thành công và những nút con đó có thể là bất kỳ tổ hợp nào của các nút kết hợp (composite), nút trang trí(decorator) hoặc nút lá (leaf), nó cho phép chúng ta thực hiện việc kiểm tra điều kiện khá dễ dàng trong bộ não của NPC.

Nút chọn (Selector)

Trong khi nút chuỗi yêu cầu tất cả các nút con của nó thành công để trả về Success, còn nút chọn sẽ trả về Success nếu bất kỳ nút con nào của nó thành công và nó sẽ không xử lý thêm bất kỳ nút con nào nữa. Nó bắt đầu xử lý nút con đầu tiên, và nếu nút con đó không thành công nó sẽ xử lý nút con thứ hai và nếu thất bại sẽ xử lý nút con thứ ba, cho đến khi đạt được thành công, lúc đó nó sẽ ngay lập tức trả về Success. Nút chọn sẽ thất bại nếu tất cả các nút con của nó đều thất bại. Điều này có nghĩa là nút chọn tương ứng với cổng OR.

Sức mạnh chính của nút chọn đến từ khả năng biểu diễn cho nhiều hướng hành động khác nhau, theo thứ tự ưu tiên và trả về Success nếu bất kỳ hướng hành động nào thành công. Chúng ta có thể nhanh chóng phát triển các hành vi khá tinh vi của NPC thông qua việc sử dụng các nút chọn.

Hãy xem lại ví dụ về nút chuỗi trước đó, lần này cây hành vi sẽ phức tạp hơn và sẽ nhờ nút chọn để giải quyết sự phức tạp này.

Một phần của tài liệu Thiết kế mô hình tri giác và nhận thức cho các npcs trong stealth game (Trang 60 - 61)

Tải bản đầy đủ (PDF)

(125 trang)