zubachi
Donkey Kong
- 5/11/04
- 301
- 0
- Thread starter
- #21
Tây Du Ký mà không biết? Kỳ quá hé. Có ai khác biết không?Có triển vọng, có gắng phát triển nhé. Bachi đang đến mùa... kiếm cơm, nên tạm thời đình trệ vụ này.
bi giờ có 1 đám wái vật, khi mình ở cách nó 1 khoảng nhất định =a thì nó ko rượt mình, khi đến gần 1 con thì con đó rượt theo,
Cái này phải thêm vô biến vị trí ban đầu của quái dzật, tạm đặt là StartPoint (x, y), tiếp theo là biến SightRadius thể hiện tầm nhìn của nó.
Dùng Pythago, distance = sqrt( sqr(monsterX - playerX) + sqr(monsterY - playerY) ), ta có thể tính được khoảng cách giữa quái dzật và người chơi. Có thể tối ưu hoá bằng cách bỏ căn bậc hai (nhưng nhớ bình phương cái SightRadius luôn nếu làm vậy).
Nếu distance <= SightRadius thì tất nhiên là nằm trong tầm tấn công. Bật flag bChasing = 1.
Để tăng sự hấp dẫn, ta làm thêm biến ChasingTimer, trong trường hợp (bChasing = 0) thì trừ Timer đi 1, ngược lại thì cộng Timer thêm 2. Nếu Timer bằng 0 thì cho dzìa StartPoint.
mấy con xung quanh con đó thấy vậy cũng rượt theo, khi mình đã chạy cách xa nó = a thì nó ko rượt nữa và tất cả quay trở về chỗ cũ.
Làm một biến kiểu như ScoutID, đại diện cho con quái dzật thấy mình đầu tiên. Cứ khi có con nào thấy mình là thay cái đại diện này.
Các quái dzật nằm trong tầm nhìn của con scout này sẽ thực hiện đuổi theo con có cái ID là ScoutID đó (giả sử trường hợp dùng array để lưu trữ quái dzật), bật flag bChasing = 2 (1 là rượt player, 2 là rượt scout).
Giả sử con quái dzật đang rượt scout mà thấy player thì bỏ rượt scout đi, thay flag bChasing = 1.
Ngoài ra:
---------
Chia ra làm các monster group là các toán quái dzật khác nhau. Mỗi monster lại có một biến GroupID. Cứ bất kỳ con nào trong nhóm thấy player là cả nhóm đi theo. Dùng cách này còn có thể nâng cao lên các chiến thuật như bủa vây player (AI Terrain Analysing của Emblem Studio - studio làm Age of Empires - có thể thực hiện khả năng này. Bachi đã xem qua mà chưa nắm được gì nhiều T___T, vì tài liệu họ công bố ở dạng trừu tượng chứ không nêu ra hướng ứng dụng). Cách bủa vây đơn giản là cho di chuyển đến một điểm gần player rồi quay ngược hướng lại. Tuy nhiên muốn tổ chức chiến thuật, cũng phải lưu ý đến vấn đề herding và flocking (bất kỳ game strategy thương mại nào cũng có phần AI nâng cao này).
Vẽ:
---
Bachi có quăng một hai bài dạy vẽ (đặc biệt là vẽ tileset) trong cái thread "Khu vực assignment của FaIRYTale" đó.
Để có thể vẽ character vừa đẹp (ở mức độ chấp nhận được) vừa lẹ thì ráng học vẽ 3D. 3DS max cũng được, nhưng bachi thích model bằng gameSpace và Cinema4D hơn. Hướng dẫn video của gameSpace có thể download ở trang web chính của nó (www.caligari.com). Bachi vẫn chưa model character được, đang học dần. Rồi còn phải học nâng cao kiến thức C++ nữa (giờ chỉ mới modulate và encapsulate thôi, chứ chưa nắm được inherit, metamorph, và polymorph).


