Tôi đang làm một trò chơi 2D. Hiện tại có một máy bay trực thăng bay xung quanh, được điều khiển bởi người chơi. Nó được điều khiển bằng các phím mũi tên: LÊN, TRÁI và PHẢI.
Đó là tốc độ dọc theo trục y dy
và tốc độ dọc theo trục x là dx
.
Đó là vật lý như sau:
Bất cứ khi nào UP không được nhấn , hãy dy
tăng tốc liên tục, tăng tốc vô hạn . (Trọng lực). dx
vẫn ở giá trị hiện tại của nó.
Khi nhấn UP , dy
tăng tốc trong gia tốc liên tục từ bất cứ thứ gì hiện tại, lên đến 4 (trở lên, cho đến khi đạt tốc độ 4). dx
vẫn ở giá trị hiện tại của nó.
Khi nhấn TRÁI , dx
tăng tốc trong gia tốc liên tục, từ mức hiện tại, lên đến -4 .
Khi nhấn RIGHT , dx tăng tốc trong gia tốc liên tục, từ bất cứ thứ gì hiện tại, lên đến 4 .
(Khi nhấn TRÁI hoặc PHẢI và LÊN không được nhấn đồng thời, như tôi đã nói: dy
ngày càng trở nên nhỏ hơn và nhỏ hơn, vì trọng lực đang ảnh hưởng đến máy bay trực thăng)
Tất cả những điều này làm cho máy bay trực thăng thường theo các vòm trên không, thay vì các đường thẳng.
Điều này tạo ra vật lý có vẻ khá thực tế.
Câu hỏi của tôi là:
Máy bay trực thăng đối thủ, một AI, nên di chuyển bằng hệ thống vật lý tương tự.
Hãy nói rằng AI muốn đi từ nơi hiện tại, đến điểm B.
Nếu không có lực hấp dẫn và không tăng tốc dần dần trong trò chơi, nó sẽ dễ dàng. Tôi chỉ đơn giản là vẽ một vectơ từ vị trí của AI đến điểm B và khiến AI đi theo nó.
Nhưng vì có lực hấp dẫn và gia tốc dần dần, AI không bao giờ có thể di chuyển theo đường thẳng (gần như). điều gì sẽ là cách tốt nhất để đưa AI đi đến điểm B, càng hiệu quả về thời gian càng tốt?
Làm cách nào để cân nhắc trọng lực khi di chuyển AI tới một đích cụ thể?
(Nếu dễ giải thích hơn, vui lòng xem điểm B ở cùng cấp độ trên trục y với AI và không theo đường chéo với nó.)
Cảm ơn