C ++ ve SFML-2.0 kullanarak 2 boyutlu, sıra tabanlı bir strateji oyunu oluşturuyorum. Hareket, ızgara tabanlı olmaktan ziyade mesafeye dayalıdır ve belirli bir dönüşte her biri yerinde dönebilen veya ileri doğru hareket edebilen birkaç farklı üçgen şekilli parça ile.
Hareket, oyuncu parçanın taşınacağı bir yer seçecek ve parçanın alması için potansiyel bir yol oluşturacak şekilde çalışacaktır. Oyuncu kararını onayladıktan sonra, taş bu yol boyunca istenen yere hareket edecektir. Yollar iki faktörle sınırlıdır: mesafe, bir parçanın ne kadar uzağa gidebileceğini, herhangi bir dönüşü hesaba katarak (böylece bir eğri varsa, doğrudan noktadan noktaya değil, eğri boyunca uzunluk olacaktır); ve direksiyon açısı, hareket halindeyken (örneğin, -30 ila 30 derece) herhangi bir noktada (ve her bir noktaya kadar) dönebilir.
Benim sorum, oyuncunun parçanın taşınması için seçebileceği potansiyel yerlerin aralığını nasıl belirleyeceğim?
Burada hangi denklemlerin ve / veya algoritmanın kullanılacağından tam olarak emin değilim. Orijinal planım aşırı derecede karmaşıktı, açıklamak yerine, uygulamanın imkansız olduğu noktaya kadar, ve bu noktada durduğum proje ile tamamen kayboldum.
Bir birimin dönüş yarıçapını dikkate alarak hareket edebileceği aralığı nasıl belirleyebilirim?
Örneğin, aşağıdaki resimde. Kırmızı, mavi ve yeşil çizgilerin hepsi aynı uzunlukta olacaktır. Mor daire, ünitenin hareket edebileceği hareket aralığını gösterir. (Şekil muhtemelen yanlış ve çizgiler muhtemelen değildir aslında aynı uzunlukta, ancak fikir)