Vâng. A * vẫn là con đường để đi trong hầu hết mọi trường hợp. Đó là tính toán chi phí nút của bạn trở nên năng động và do đó phức tạp hơn để tính toán và theo dõi.
Nếu bạn đã biết các chướng ngại vật di chuyển sẽ ở đâu trong tương lai, A * của bạn có thể tính đến tính tạm thời của các chướng ngại vật trong hàm chi phí.
Ví dụ: Nút này sẽ đạt được trong 4 tick, chiếm từ tick # 3 cho đến tick # 6, vì vậy chi phí đi lại trên nút này là 6 - 4 = +2 tick. Đó có thể vẫn là con đường tốt nhất.
Hướng di chuyển của chướng ngại vật cũng phải được tính đến.
Nếu bạn không biết trước thì bạn có thể cho rằng không có chướng ngại vật và tính toán lại con đường khi đạt được chướng ngại vật nhưng bạn sẽ cần phải làm gì đó về những bế tắc và những cuộc sống. (Điều tương tự cũng được áp dụng nếu bạn có thể dự đoán chướng ngại vật sẽ ở đâu nhưng bản thân nó là một loại tránh bế tắc / khóa sống và điều đó có thể đủ tốt cho mục đích của bạn.)
Bế tắc là khi cả hai chờ người kia di chuyển và không ai di chuyển.
Một livelock là khi cả hai ( hoặc nhiều hơn <- điều này rất quan trọng để xem xét) di chuyển để tránh người khác theo cùng một hướng và cuối cùng trở lại và không có tiến triển.
Việc giải quyết các bản nhạc có thể trở nên rất phức tạp và điều đó phụ thuộc hoàn toàn vào các quy tắc và cơ chế va chạm trong trò chơi của bạn (ví dụ: họ có nên chiến đấu và tiêu diệt chướng ngại vật không?).
Nó thường quay trở lại việc các đối tượng chuyển động của bạn lên lịch đặt trước nút / đường dẫn (đừng quên hủy bỏ khi chúng thay đổi đường dẫn hoặc chết) để các đối tượng chuyển động khác có thể lên kế hoạch trước.
Một khi bạn có thông tin này, bạn cũng có thể lập kế hoạch đánh chặn.