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.ceil()
Bu kod verilen ondalık sayıyı bir üst tamsayıya(+∞’a doğru) yuvarlar.
Math.floor
Bu kod verilen ondalık sayıyı bir alt tamsayıya(-∞’a doğru) yuvarlar.
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.max(sayi1,sayi2)
Bu kod verilen 2 sayıdan büyük olanı verir..
Math.min(sayi1,sayi2)
Bu kod verilen 2 sayıdan küçük olanı 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.sqrt()
Sqrt() kodu yazılan sayının karekökünü alır.
Math.random()
0 ile 1 arasında rastgele sayı üretir..Şimdiye kadarki öğrendiklerimizi birleştirerek basit bir uygulama yaparsak
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.
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:
Ö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.
Ç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