Tôi đang tạo một trò chơi hành động dựa trên bản đồ 2D với thiết kế tương tác tương tự như Diablo II. Nói cách khác, người chơi nhấp xung quanh bản đồ để di chuyển người chơi của họ. Tôi vừa hoàn thành chuyển động của người chơi và đang chuyển sang tìm đường.
Trong trò chơi, kẻ thù nên tính phí nhân vật của người chơi. Ngoài ra còn có năm loại địa hình khác nhau cho các phần thưởng di chuyển khác nhau. Tôi muốn AI tận dụng những phần thưởng địa hình này khi chúng cố gắng tiếp cận người chơi.
Tôi được yêu cầu kiểm tra thuật toán tìm kiếm A * (http://en.wikipedia.org/wiki/A*_search_alacticm). Tôi đang chơi trò chơi này trong HTML5 và JavaScript và đã tìm thấy một phiên bản bằng JavaScript: http://www.briangrinstead.com/blog/astar-search-alerskym-in-javascript Tôi đang cố gắng tìm ra cách điều chỉnh nó Tuy nhiên.
Dưới đây là những ý tưởng của tôi về những gì tôi cần thay đổi. Những gì tôi cần phải lo lắng về?
- Khi tôi tạo một biểu đồ, tôi sẽ cần khởi tạo mảng 2D mà tôi đã truyền qua với một đường ngang của bản đồ tương ứng với các loại địa hình khác nhau.
- trong graph.js: Định nghĩa "GraphNodeType" cần được sửa đổi để xử lý 5 loại địa hình. Sẽ không có bức tường.
- trong astar.js: Điểm g và h sẽ cần được sửa đổi. Làm thế nào tôi nên làm điều này?
- trong astar.js: isWall () có lẽ nên bị xóa. Trò chơi của tôi không có tường.
- trong astar.js: Tôi không chắc đây là gì. Tôi nghĩ rằng nó chỉ ra một nút không hợp lệ để được xử lý. Khi nào thì điều này sẽ xảy ra?
- Ở mức cao, làm cách nào để thay đổi thuật toán này từ "oh, có một bức tường ở đó không?" đến "địa hình này sẽ đưa tôi đến với người chơi nhanh hơn địa hình xung quanh tôi chứ?"
Vì thời gian, tôi cũng đang tranh luận về việc sử dụng lại thuật toán Bresenham của mình cho kẻ thù. Thật không may, các phần thưởng chuyển động địa hình khác nhau sẽ không được AI sử dụng, điều này sẽ khiến trò chơi bị hút. : / Tôi thực sự muốn có cái này cho nguyên mẫu, nhưng tôi không phải là nhà phát triển bằng thương mại cũng không phải là nhà khoa học máy tính. : D
Nếu bạn biết bất kỳ mã nào thực hiện những gì tôi đang tìm kiếm, hãy chia sẻ!
Mẹo kiểm tra vệ sinh cho việc này cũng được đánh giá cao.