harbi çok güzel olmuş; ellerine sağlık... müziği de sevdim, kodu da, demonun tematik yapısını da. klasik scrolltext/sprite demolarının dışında böyle tematik yaklaşımlar benim daha hoşuma gidiyor. müziğin 'mistik' tadı da hakikaten iyi; keyifle dinledim. ses oyunları (iniş çıkışlarda kullanılan oyunlar falan) belki biraz 'yavan' olabilir, ama melodisi gerçekten güzel. grafiklerde ufak tefek (gözler mesela) bozukluklar var; ama göze de çok batmıyor.
gerçekten elinize sağlık. ikincilik alması da ayrıca hoşuma gitti. tebrikler!
nerde bizim 64cülerimiz? biraz da onlar eleştirsin. 64 kodunun neye kadir olduğunu tam kestiremiyorum; lakin light-shaded & filled vektör sanırsam ki aletin sınırlarında... 🙂 haa, orda x/y değerlerini artırıp azaltmak yerine belki daha hoş bir data tablosu kullansaydın (aklıma elastik bounce geliyor) daha hoş durabilirdi ve belki 1-2 farklı obje daha...
elastik rutinleri yoksa flash/javascript için olanı aşağıda; Robert Penner'ın library'sinden ödünç alınmıştır.
ukalalık olarak algılamaman umuduyla koyuyorum buraya.
/////////// ELASTIC EASING: exponentially decaying sine wave //////////////
// t: current time, b: beginning value, c: change in value, d: duration, a: amplitude (optional), p: period (optional)
// t and d can be in frames or seconds/milliseconds
Math.easeInElastic = function (t, b, c, d, a, p) {
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
if (a < Math.abs(c)) { a=c; var s=p/4; }
else var s = p/(2*Math.PI) * Math.asin (c/a);
return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
};
Math.easeOutElastic = function (t, b, c, d, a, p) {
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
if (a < Math.abs(c)) { a=c; var s=p/4; }
else var s = p/(2*Math.PI) * Math.asin (c/a);
return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
};
Math.easeInOutElastic = function (t, b, c, d, a, p) {
if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5);
if (a < Math.abs(c)) { a=c; var s=p/4; }
else var s = p/(2*Math.PI) * Math.asin (c/a);
if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
};