C ++ 'da gerçekten zayıf bir taktik RPG yazmakla uğraşıyorum. Şimdiye kadar bir 2D kiremit harita var ve sadece wikipedia pseudocode dayalı çalışan A * algoritması var .
Ancak gerçek taktik RPG'ler sadece düz bir düzlemde en iyi yolu bulup oraya taşınmazlar. Tipik olarak sınırlı hareket menzillerine sahiptirler ve yukarı veya aşağı tırmanmaları gerekir. Hiç Final Fantasy Tactics oynadıysanız bunlar Move and Jump istatistiklerinden etkilenir. Burası kaybolduğum yer. A * algoritmasını bir hedefe doğru en iyi yolu bulabilecek şekilde nasıl değiştirebilirim, ancak yol yalnızca çok fazla karo uzunluğunda mı? Yükseklik farklarını ve atlama istatistiklerini nasıl dikkate almalıyım? Bir boşluğun üstünden atlamayı nasıl uygularım?
Yardım ederse, şu anda haritam Vector of Tile nesneleriyle temsil ediliyor. Her döşemenin, haritanın kenarı boyunca veya bir döşemenin geçilemez olarak ayarlanmış olması gibi, hiçbir döşemenin olmaması durumunda nullptr olarak ayarlanan Kuzey, Güney, Doğu ve Batı döşemesine işaretçiler vardır.