Kenar yumuşatmanın neden olduğu bulanıklaştırma etkisini önlemek için tam piksel koordinatlarında sprite oluşturuyorum (sprite piksel sanat ve filtre uygulanmışsa korkunç görünecektir). Bununla birlikte, nesnelerin hareketi değişken hız, yerçekimi ve fiziksel etkileşimler içerdiğinden, yörünge alt piksel hassasiyeti ile hesaplanır.
Yeterince büyük ekran alanı hızlarında (2 veya 3 pikselden büyük vΔt) bu çok iyi çalışır. Bununla birlikte, hız küçük olduğunda, özellikle çapraz çizgiler boyunca belirgin bir merdiven etkisi görünebilir. Bu artık çok yavaş ekran alanı hızları (v << 1 piksel / saniye) bir sorun değil, bu yüzden sadece ara hız değerleri için bir çözüm arıyorum.
Solda, nesne koordinatlarının basit yuvarlanmasıyla elde edilen büyük bir hız için çizilen yörünge vardır. Ortada, hız küçüldüğünde ne olduğunu ve bahsettiğim merdiven efektini görebilirsiniz. Sağda, almak istediğim yörüngenin lokusu.
Büyük ve küçük hızlarda orijinal davranışı korurken, takma adı en aza indirmek için yörüngeyi filtrelemek için algoritma fikirleriyle ilgileniyorum. Δt, anlık konum ve hızın yanı sıra isteğe bağlı önceki değerlere erişimim var, ancak gerçek zamanlı bir simülasyon olduğundan, gelecekteki değerler hakkında bilmiyorum (gerekirse, bir tahmin belirli varsayımlar altında tahmin edilebilir) . Fizik simülasyonu nedeniyle ani yön değişikliklerinin de olabileceğini unutmayın.
velocity.y / velocity.x
, hız ile orantılı bir düzeltme faktörü ile çarpılarak çözülebilir .