Not:ActionScript 2.0Flash uygulamalarında çeşitli efektlerin yapımında(örneğin kar yağışı efekti) ve oyun yapımında sıklıkla flash’ın matematik sınıfına ihtiyaç duyarız. Özellikle oyun uygulamalrının vazgeçilmezidir matematik sınıfı.Matematik sınıfını özelliklerini internette her yerde bulabilirsiniz ancak trigonometri sınıfı genellikle çok detaylı anlatılmaz(ya da ben bulamadım), bu yüzden bunları biliyorsanız bile yazının trigonometri ile ilgili olan kısmına göz atmanızı tavsiye ederim.
Matematik sınıflarına ait kodlar genellikle programlama dillerinde benzerlik gösterirler, ufak tefek yazım farkları vardır. Matematik sınıfının kod kısmında yerini belirtip sıradan anlatmaya başlayalım:ActionScript 2.0 Classes>Core>Math>Methods kısmındaki kodlar:Math.abs()
Bu kod verilen sayının mutlak değer olarak değerini verir. Örneğin:Math.abs(-13) ///13 sonucunu verir..sayi1=-23Math.abs(sayi1)///23 sonucunu verir..
Math.ceil()
Bu kod verilen ondalık sayıyı bir üst tamsayıya(+∞’a doğru) yuvarlar.Math.ceil(-12.3)//-12 sonucunu verir..Math.ceil(12.3)//13 sonucunu veriri..
Math.floor
Bu kod verilen ondalık sayıyı bir alt tamsayıya(-∞’a doğru) yuvarlar.Math.floor(-12.3)//-13Math.floor(12.3)//12
Math.round()
Round() komudu verilen sayiyi en yakın tamsayıya yuvarlar. Eğer sayı iki tarafa da eşit uzaklıktaysa örneğin 10.5 gibi sayıyı üste 11’e yuvarlar.Math.round(10.4)//10 sonucunu verir..Math.round(10.8)//11 sonucunu verir..
Math.max(sayi1,sayi2)
Bu kod verilen 2 sayıdan büyük olanı verir..Math.max(12,15)//15 sonucunu verirsayi1=22sayi2=13Math.max(sayi1,sayi2)//22 sonucunu verir…
Math.min(sayi1,sayi2)
Bu kod verilen 2 sayıdan küçük olanı verir..sayi1=22sayi2=13Math.min(sayi1,sayi2)//13 sonucunu verir..
Math.pow(sayi,sayının_üssü)
Pow() fonksiyonu da tahmin edebileceğiniz gibi ilk sayı üssü ikinci sayıyı hesaplayıp sonucunu verir..Math.pow(10,2)//100 sonucunu verir..sayi1=2sayi2=3Math.pow(sayi1,sayi2)//8 sonucunu verir..
Math.sqrt()
Sqrt() kodu yazılan sayının karekökünü alır.Math.sqrt(4)//2 sonucunu verir..
Math.random()
0 ile 1 arasında rastgele sayı üretir..Şimdiye kadarki öğrendiklerimizi birleştirerek basit bir uygulama yaparsaksayi = Math.round(Math.random()*10);///0-10 arası tamsayı rastgele bir sayı verir.sayi2 = Math.sqrt(sayi)*Math.random()*10;if (Math.max(sayi, sayi2) == sayi) {trace(“sayı 1 büyük”);} else {trace(“sayı 2 büyük”);}
Bu kodu çalıştırdıkça bazen sayı 1 büyük bazen de sayı 2 büyük çıktısını alırsınız(çoğunlukla sayı 2 büyük çıktısını)Şimdi gelelim kullanımı diğerlerine nazaran daha zor olan ancak ortaya daha güzel işler koyabileceğiniz kodlara:Math.sin(), Math.cos(),Math.tan,Math.asin(),Math.atan(),Math.acos()..
Bunlar aslında matematikten bildiğimiz trigonometrik fonksiyonlar ancak flash mantığını anlatalım hemen: Normalde matematikte sin30 = 0.5 olarak biliriz, burada 30 derece cinsindedir ancak Flash bu kısmı radyan cinsinden ister. İsterseniz Math.sin(30) yazıp deneyin.Math.sin(30)//-0.988031624092862 sonucunu elde edersiniz.
Burada açı değerleri arasındaki değişimi kullanıcaz. Matematik bilgilerinizden hatırlarsınız: derece/180=radyan/pi’dir. Yani radyan=derece*pi/180 dir. Öyleyse derece cinsindeki değeri radyan cinsinden yazıp Math.sin() fonksiyonunu devreye sokmamız gerekmektedir.Bunu da şöyle yaparız:Math.sin(30*Math.PI/180)//0.5 sonucunu verir
Öncelikle buna dikkat etmek gerekir. Flash doğal açı birimi olan radyanı kullanır ama siz açınız grad da olsa milyem de olsa mantığını anladıktan sonra rahatlıkla kullanabilirsiniz.Math.PI() fonksiyonunun pi değerini verdiğini tahmin etmişsinizdir.
Şimdi 1-2 örnek verelim..Neler yapabileceğimizi daha yakından görelim:Dikdörtgen aracını kullanarak çubuk benzeri bir şekil çizin ve bunu movieclip yapın. MovieClip yaparken registration noktasını sol en ucu olarak ayarlayın. MovieClip’in instance name’ini cubuk_mc olarak atayın ve aşağıdaki kodu 1. frame’e yazın.cubuk_mc.onEnterFrame=function(){ymesafe=_ymouse-cubuk_mc._yxmesafe=_xmouse-cubuk_mc._xaci=Math.atan2(ymesafe,xmesafe)cubuk_mc._rotation=aci*180/Math.PI}
Çubuğun imlecin konumuna göre dönmesi gerekir. İşte size trigonometrik fonksiyonlarla yapabileceğiniz çok gizel bir örnek. Buradaki Math.atan2(y,x) fonksiyonu y ve x değerlerine göre aradeki açıyı hesaplar. Bu değeri cubuk_mc._rotation değerine atarız ve cubuğun imleçe göre dönmesini sağlamış oluruz.Trigonometrik fonksiyonları iyi anlamak ve üzerinde düşünmek gerekir, örneğin bir arabayı ileri geri, sağa sola hareket ettirme işini trigonometrik fonksiyonlarla yapabilirsiniz. En iyisi Matematik bilgilerinizi gözden geçirmeniz, çok ilginç uygulamalara imza atabilirsiniz.Örneğin eğik atış hareketi yaparken de trigonometrik fonksiyonları kullanmanız gerekir. Yönü belirlersiniz ve atışı yaparsınız.Bu örneği burada bulabilirsiniz, indirebilirsiniz.(Örneği ben hazırladım ayıptır söylemesi ) Ayrıca örneğin açıklamalı şeklini uzun zaman önce yazdığım bir blog’da anlatmıştım. Örneği tekrar burada yazmak istemiyorum, biraz hacimli bir yazıydı. Reklam yapmak istemiyorum ama zaten siteyi uzun zamandır güncellemiyorum, siteden bir gelirimde yok zaten. Örnek buradan