Tôi đang tạo một trò chơi chiến lược theo lượt 2 chiều bằng c ++ và SFML-2.0. Chuyển động dựa trên khoảng cách thay vì dựa trên lưới, với một số mảnh hình tam giác khác nhau, trên một ngã rẽ nhất định, mỗi vòng có thể xoay tại chỗ hoặc di chuyển về phía trước.
Chuyển động sẽ hoạt động theo cách mà người chơi chọn một vị trí cho quân cờ để di chuyển tới, điều này tạo ra một đường dẫn tiềm năng cho quân cờ đi. Khi người chơi xác nhận quyết định của mình, quân cờ sẽ di chuyển dọc theo con đường đó đến vị trí mong muốn. Các đường dẫn bị giới hạn bởi hai yếu tố: khoảng cách, quãng đường có thể đi được bao xa, có tính đến bất kỳ ngã rẽ nào (vì vậy nếu có đường cong, nó sẽ là chiều dài dọc theo đường cong và không trực tiếp từ điểm này sang điểm khác); và góc lái, mảnh có thể xoay bao xa tại bất kỳ điểm nào (và lên đến mọi điểm) trong khi di chuyển (ví dụ: từ -30 đến 30 độ).
Câu hỏi của tôi là, làm thế nào tôi nên đi về việc xác định phạm vi vị trí tiềm năng mà người chơi có thể chọn để di chuyển mảnh?
Tôi không hoàn toàn chắc chắn phương trình và / hoặc thuật toán sẽ sử dụng ở đây. Kế hoạch ban đầu của tôi vô cùng phức tạp, đến mức gần như không thể thực hiện được, hãy để một mình giải thích, và tại thời điểm này tôi hoàn toàn lạc lối với dự án bị đình trệ.
Làm cách nào tôi có thể xác định phạm vi mà một đơn vị có thể di chuyển, có tính đến bán kính quay của nó?
Ví dụ, trong hình dưới đây. Các đường màu đỏ, xanh dương và xanh lá cây sẽ có cùng chiều dài. Vòng tròn màu tím biểu thị phạm vi chuyển động mà đơn vị có thể di chuyển. (Hình dạng có thể không chính xác và các đường có thể không thực sự có cùng độ dài, nhưng bạn hiểu ý)