Midpoint Displacement Algorithm'u JavaScript ve canvas
kullanarak gamedev.stackexchange.com üzerinde önerildiği şekilde kullanıyorum.Bu JavaScript kodu Midpoint Deplasman algoritmasını takip ediyor mu?
Aşağıdaki kod, dizi dizininin x
konumu ve değeri y
konumu olduğu noktaları oluşturur.
var createTerrain = function(chops, range) {
chops = chops || 2;
range = parseInt(range || 100);
if (chops > 8) return;
var cycle = parseInt(width/chops);
for (var i = 0; i <= width; i += cycle) {
var y = (height/2) + getRandomNumber(-range, range);
terrain[i] = y;
}
chops *= 2;
range *= 0.5;
createTerrain(chops, range);
}
getRandomNumber()
'ın argümanlar min
ve max
bulunmaktadır. width
ve height
, canvas
'un karşılığıdır. Bu gibi bir şey üretir
...
Oldukça dalgalı görünüyor, ama bu sadece ne kadar olabilir.
Bu algoritma hakkım var mı? Eğer değilse, sorun nedir ve bana doğru yönde işaret edebilir misiniz?
Sen azaltarak bunu düzeltmek mümkün olmalıdır) rasgele sayı aralığı. Bunu daha önce denedin mi? –
@Matt Evet, birkaç şey denedim. İlk önce bu algoritmaya sahip olduğumda daha çok ilgileniyorum :) – alex