(Onarıldı,Güncellendi) ActionScript 3.0 ile Kar Yağışı
Kar üretim sayısını artırmak için karOlusturucu_tmr ‘de ki 100 rakamını küçültün. 70 ten aşağı inmemenizi tavsiye ederim çünkü sprite kullanmadım
Kütüphanemizde kar için bir mc olmak zorunda. linkage ile “kar” olarak sınıf ismi veriniz.
________________________________________________________
// KODLAR //
// Zamanlayıcı değişkeni oluşturuluyor, Timer sınıfının Timer
// fonksiyonuna “200 milisaniye” ve “sonsuz/0″ değerlerini yolluyoruz (200,0)
var karOlusturucu_tmr:Timer=new Timer(200,0);
// Zamanlayıcı değişkenine karOlustur_tmr_fnk adlı bir dinleyici
// ekliyoruz. Böylece bu fonksiyon 200 milisaniyede bir çalışacak
karOlusturucu_tmr.addEventListener(TimerEvent.TIMER, karOlustur_tmr_fnk);
// Zamanlayıcı sınıfının start/başlat fonksiyonunu çalıştırıyoruz
karOlusturucu_tmr.start();
// Kar alanı, yani kar’ın yağması gereken kısmı belirleyen
// film klibini gizliyoruz
kar_alani_mc.visible=false;
// Yön, hız ve kar taneleri boyutları için birer değişken
// oluşturuyoruz. Bu değişkenler timer içerisinde her tanecikte
// farklı değerler için kullanılacaklar
var yon:Number;
var hiz:Number;
var size:Number;
// Zamanlayıcımıza eklediğimiz dinleyiciyi çalıştırıyoruz
function karOlustur_tmr_fnk(e:TimerEvent) {
// Yeni bir kar tanesi oluşturuyoruz. Kar tanesini
// kütüphanede karBlur / Properties / Linkage kısmına girdiğimiz
// değerler sayesinde sahneye çağırıyoruz
var kar_mc:kar = new kar();
// Kar tanesinin ilk x değeri, bu sayı üretici kar alanı
// film klibinin x ve x + width değerleri arasında rastgele değer
// oluşturacak
// İkinciden başlamak üzere, birinciyle ikincinin toplamı arasında üretir
// Birinci değer: kar_alani_mc.width, İkinci değer:
// kar_alani_mc.x, Üretim: kar_alani_mc.x ile,
// (kar_alani_mc.x + kar_alani_mc.width) arasında bir sayı
kar_mc.x=Math.random()*kar_alani_mc.width+kar_alani_mc.x;
// Kar tanesinin ye konumu kar alanının y konumu ile aynı olsun
kar_mc.y=kar_alani_mc.y;
// Hız, yön ve boyut değişkenlerini bu kar tanesi için değiştiriyoruz.
// Yine rastgele sayı üretme fonksiyonu aynı mantık üzerine kullanıldı
// Hız, 1.5 ile 2.5 arasında bir değer
hiz=Math.random()* 1 + 1.5;
// Yön, 0.5 ile -0.5 arasında bir değer
yon=Math.random()*-1+.5;
// Boyut, 0.05 ile 0.35 arasında bir değer
size=Math.random()*.3+.05;
// kar_mc,hiz,ve yon olmak üzere 3 tane değişken kabul eden,
// kar tanesinin hareketini başlatan fonksiyonumuzu çalıştırıyoruz
// Bu fonksiyona beklediği değişkenleri göndermek durumundayız, parantez içinde yaptığımızda bu.
yagis_fnk(kar_mc,hiz,yon,size);
}
// 200 milisaniyede bir çalışan timer fonksiyonu, 200 milisaniyede
// bir bu fonksiyonu çalıştırıyor. Buraya kar tenesi için
// film klibi, hız, yön ve boyut için değişkenler postalıyor.
function yagis_fnk(gelen_kar_mc:MovieClip,hiz_data:Number, yon_data:Number,size_data:Number) {
// yagis_fnk her kar tanesi için bir kere çalışır. O halde gelen kar tanesini boyutlandıralım.
gelen_kar_mc.scaleY=size_data;
gelen_kar_mc.scaleX=size_data;
// Sahnenin frame ilerlemesi olayına dus_enter_fnk adında bir
// dinleyici ekliyoruz. Böylece flash frameler arasında her
// ilerlediğinde bu fonksiyonu çalıştıracak.
stage.addEventListener(Event.ENTER_FRAME,dus_enter_fnk);
// Düş Enter Fonksiyonu’nu tanımlıyoruz.
function dus_enter_fnk(e:Event) {
// Gelen kar, yagis_fnk adlı fonksiyona
// gönderilen bir değişkendi. Bu film klibinin y özelliğini her
// frameye girildiğinde hiz_data kadar artırıyoruz.
gelen_kar_mc.y+=hiz_data;
// Bu film klibinin x özelliğini her frameye girildiğinde yon_data kadar artırıyoruz.
gelen_kar_mc.x+=yon_data;
// Kar tanesini sahneye ekliyoruz
addChild(gelen_kar_mc);
// Kar tanesi ve üzerindeki
// fonksiyonları, kar tanesi kar alanının dışına çıkınca sil.
// Performans kazanmak için mutlaka yapılması gerekiyor.
if (gelen_kar_mc.y>kar_alani_mc.y+kar_alani_mc.height+gelen_kar_mc.height) {
stage.removeEventListener(Event.ENTER_FRAME,dus_enter_fnk);
removeChild(gelen_kar_mc);
}
}
}
Dosya: http://as3coder.com/dosyalar/kar_yagisi/kar.fla
Önizleme: http://as3coder.com/2010/01/01/actionscript-30-ile-kar-yagisi-efekti-nasil-yapilir/
KODLAR(HTML): http://as3coder.com/dosyalar/kar_yagisi/actionscrip_3_ile_kar_yagisi.html
PDF: http://as3coder.com/dosyalar/kar_yagisi/ActionScript_ile_kar_yagisi.pdf
Bu yazılım Burak AYDIN / AS3CODER.COM tarafından oluşturuldu.