Her ne kadar ActionScript 3’ün çıkmasıyla AS 2 önemini yitirmeye başlasada halen daha önemli bir oranda kullanılmakta. En son baktığım bir ankette AS2 kullananlar AS3 kullananlardan daha fazlaydı. Ben de AS3’e geçemeyenlerden(alışamayanlardan)ım. Bunun sebebi okul dersleri ya da tekrardan uğraşmak istememek olabilir ama bence eğer 3 boyuta bulaşmayacaksanız AS2 size yeter. Nitekim ben de böyle düşünüp bir oyun hazırladım. Umarım beğenirsiniz….İlk olarak oyunun gözünüzün önünde canlanması için sağ üst tarafa doğru ev gibi bir yapı düşünün, buradan aşağıya doğru saksılar atılıyor. Bizim amacımız ise bu saksıları yere değmeden havadayken aşağı yukarı kafasını çevirebildiğimiz top benzeri savaş aletiyle ateş ederek vurmak. Saksılar yere değerse hp_mc isimli, bizim kalan canımızı gösteren bar’ın _xscale’si azalıyor nitekim 0 olunca oyun bitiyor.İlk olarak sahneye top benzeri bir savaş aleti çiziyoruz, namlu kısmını bunun tam ortasına gelecek şekilde ayarlıyoruz.. Şekildeki gibi..

Namlu kısmını movieClip yapıyoruz, referans noktasını(registration) sol orta olarak seçiyoruz, movieclip’e çeviriyoruz. İnstance name olarak namlu_mc yazıyoruz.. Sıra geldi mermiye mermi olarak bir şekil çizin ve movieclip’e çevirin. Bu movieclip’i library’de bulup sol tıklayıp linkage seçeneğini seçin. Identifier kısmına mermi yazın.Ben hedef olarak saksı çizdim, tabi ki siz istediğiniz şekli çizebilirsiniz. Hedef olması için bir şekil çizin ve movieClip’e çevirin. Bunu da mermiyiyaprığımız gibi Identifier kısmına hedef yazın.Şimdi arkaplandaki son objeler.. Alt tarafa zemin vazifesi görecek dikdörtgen benzeri bir şey çizin ve MC’ye çevirin ve instance name olarak yer_mc yazın. Saksıların fırlatılacağı yer olarak bir bina çizin ve instance name olarak ev_mc yazın.(Kodların bir kısmını evin yerine ve boyutlarına göre ayarlamanız gerekecek) Şimdi bir de hp bar ayarlayınca kodları yazmaya başlayabiliriz. Hp bar olarak klasik bir hp çubuğu çizin(yatay olarak) ve instance name olarak hp_mc yazın.. Kodlar 1. frame’e…

Bendeki oyunun son hali...
Bendeki oyunun son hali…

skor=0namlu_mc._rotation = -10;var mermi_array:Array = new Array();g = 0.2;a = 0;atis = true;_root.createEmptyMovieClip(“herkes”, _root.getNextHighestDepth());namlu_mc.onEnterFrame = function() {if (namlu_mc._rotation<0 && namlu_mc._rotation>-90) {mesafex = _xmouse-namlu_mc._x;mesafey = _ymouse-namlu_mc._y;aci = Math.atan2(mesafey, mesafex)*180/Math.PI;namlu_mc._rotation = aci;}if (namlu_mc._rotation>=0) {namlu_mc._rotation = -10;} else if (namlu_mc._rotation<-90) {namlu_mc._rotation = -89;}namlu_mc.onMouseDown = function() {atis = false;mermi = herkes.attachMovie("mermi", "mermi"+a, herkes.getNextHighestDepth(), {_x:namlu_mc._x, _y:namlu_mc._y});mermi_array.push(mermi);a++;mermi.speedx = 10*Math.cos(namlu_mc._rotation*Math.PI/180);mermi.speedy = 12*Math.sin(namlu_mc._rotation*Math.PI/180);mermi.onEnterFrame = function() {this._x += this.speedx;this._y += this.speedy;this.speedy += g;if(this._y>500){this.removeMovieClip()}};};////////////mermi sayısı 10 asarsa..if (mermi_array.length>30) {mermi_array.splice(0, 24);}/////////////hp bar…if (hp_mc._xscale<=0) {gotoAndPlay("son");}};//////hedef için kodlarfunction produce_hedef(){hedef=herkes.attachMovie("hedef","hedef"+a,herkes.getNextHighestDepth(),{_x:180+ev_mc._x*Math.random(),_y:ev_mc._height*Math.random()})a++hedef.speedy=Math.random()*2hedef.onEnterFrame=function(){this._y+=this.speedythis.speedy+=0.07for(i=0;i<36;i++){if(this.hitTest(mermi_array[i])){this.removeMovieClip()skor++skor_txt.text=skor}}if(this.hitTest(yer_mc)){hp_mc._xscale-=5this.removeMovieClip()}}}setInterval(produce_hedef,1000)
Her hangi bir sorun olursa, bir sorunuz olursa buralardayım..Kolay Gelsin.