20 Ocak 2012 Cuma

Ders-6 AS3 Değişkenler

Degiskenler


Nitekim programlamada ve haliyle oyun programlamasinda da, degisken vazgeçilmez bir unsurdur. Simdi, kisaca Action Script’teki degiskenler konusuna bir göz atalim.

Degiskenlerimizin yapisi :var degiskenin_ismi: degiskenin_tipi= degiskenin degeri” seklindedir.Degiskenimizi tanimlarken bu kalibi kullaniriz.Bu konuya baslamadan önce, size az sonra gösterecegim örnekleri çalistirdiginiz zaman, sonuçlar “OUTPUT” penceresinde gösterilecektir.Bu nedenle output penceresini öncelikle açmak gerekir.Bunun için, “F2” tusunu veya “Window-Output” kismini tiklamaniz gerekir.Simdi degisken tiplerine bir bakalim:

int

Bu degisken tipi,"pozitif (+)","negatif (-)" ve "0" rakamlari için kullanilir.Ancak ondalik degere sahip rakamlar için kullanilamaz.Kullanilirlarsa ondalik degerini otomatik olarak siler.


Örnek: Actions panelini açin ve asagidaki kodlari yazin:

var sayi:int= 4.3;
trace(sayi);


Ardindan “Crtl+Enter” yapinca sonuç olarak “4” çikacaktir.Noktadan sonraki 3 rakami otomatik olarak silinmistir. “trace ();fonksiyonun görevi,içine yazilan degerleri output penceresine yansitmaktir.






uint

Bu degisken tipi,sadece “pozitif (+)” ve “0” rakamlari için kullanilir.”Negatif (-)” rakamlar kullanilamaz.Kullanilirlarsa hata verir.Ayni zamanda ondalik degere sahip rakamlar için kullanilamaz.Kullanilirlarsa ondalik degerini “int” de oldugu gibi otomatik olarak siler.

Örnek: Actions panelini açin ve asagidaki kodlari yazin:

var sayi:uint= 4.3;
trace(sayi);


Ardindan “Crtl+Enter” yapinca sonuç olarak “4” çikacaktir.Noktadan sonraki 3 rakami otomatik olarak silinmistir. Ardindan 4.3 degerini silin ve yerine -5 yazin ve tekrar çalistirin. -5 sonucunu vermedigini görüceksiniz.


Number

Bu degisken tipi tüm rakamlar için kullanilabilir (pozitif (+),negatif(-),ondalikli ve 0).

Örnek: Actions panelini açin ve asagidaki kodlari yazin:

var sayi:Number= 4.3;
trace(sayi);


Ardindan “Crtl+Enter” yapinca sonuç olarak “4.3” çikacaktir.Ayni sekilde bütün pozitif ve negatif rakamlarini deneyebilirsiniz.Istediginiz sonucu verdigini göreceksiniz.




[size=large]String[/size]

Bu degisken tipi: Yazilarin ve harflerin kullanilmasi gerektiginde kullanilir.

Örnek: Actions panelini açin ve asagidaki kodlari yazin:

var yazi:String="merhaba oyun yapimcilari";
trace(yazi);


Ardindan “Crtl+Enter” yapinca sonuç olarak OUTPUT penceresinde “merhaba oyun yapimcilari” yazisinin yazdigini göreceksiniz.




Boolean

Bu degisken oyunlarin programlanmasinda sikça kullanilir.Bu degisken tipi 0,1 mantiksal degere göre deger alir.Yani toplam 2 deger alabilir.Bunlardan biri “true” digeri de “false”dir.

Örnek: Actions panelini açin ve asagidaki kodlari yazin:


var durum:Boolean=true;

if(durum){
trace("degiskenin degeri true'dur");

}else if(durum==false){
trace("degiskenin degeri false'dir");
}




Ardindan “Crtl+Enter” yapinca sonuç olarak OUTPUT penceresinde “degiskenin degeri true'dur” yazisinin oldugunu göreceksiniz.Sonra durum degiskenin degerini "false" yapin ve tekrar çalistirin.Bu sefer de output penceresinde “degiskenin degeri false'dir” yazisinin yazdigini göreceksiniz.



Array

Türkçesi Diziler’dir.Birçok degisken tanimlamamiz gereken bir durum oldugunda,bu kargasayi önlemek için, dizileri kullanabiliriz.Öncelikle dizi’yi su sekilde tanimlariz:
var degiskenin_ismi: Array=new Array(); ”. Bu dizimiz içine sonsuz miktarda deger alabilir.Eger dizi’yi sinirli miktarda deger almasini istiyorsak bunu, “ new Array(5); ” kismindaki parantezin içine alacagi deger sayisini belirtebiliriz.Örnegin ben 6 dedim.Yanlis duymadiginiz 6 dedim. “Ama bunun içinde 5 yaziyor?” diyorsaniz eger,size cevabim su olacaktir: “Dizilerde deger alimi 0’dan baslar (0,1,2,3,4,5 = toplam 6 tane).O nedenle parantezin içine yazilan sayi daima gerçekte bir fazlasidir.100 yazilmissa aslinda 101’dir gibi.” Simdi bu dizilerin ne ise yaradigini size karsilastirmali olarak göstereyim, örneklendireyim:

Örnegin bize, 5 ve 5’in katlarini barindiran, toplam 100 tane degisken olsun,her bir degisken, 5’in katlarindan olan bir sayiyi barindirsin ve bunlara istedigimiz zaman ulasip,içerigindeki rakamlari degistirebilelim.Bunu nasil yapabiliriz? Bunu 2 sekilde yapabiliriz:

1-)100 tane ayri ayri degiskenler tanimlayip, içerigine 5 ve 5’in katlari olan bir rakam degeri vererek yapabiliriz.

var ornek_1:int=5;
var ornek_2:int=10;
var ornek_3:int=15;
var ornek_4:int=20;
var ornek_5:int=25;
var ornek_6:int=30;
var ornek_7:int=35;
var ornek_8:int=40;
var ornek_9:int=45;
var ornek_10:int=50;
var ornek_11:int=55;
var ornek_12:int=60;
var ornek_13:int=65;
var ornek_14:int=70;
.
.
.

var ornek_99:int=495;
var ornek_100:int=500;


trace(ornek_9); // Sonuç 45 çikar;
trace(ornek_99); // Sonuç 495 çikar;



Böyle böyle toplam 100 tane degisken tanimlamamiz gerekirdi.Bu da, “fazladan emek+zaman kaybi ve kod karmasasi” demektir.Ya bizden 5’in katlari olarak 100 tane rakam degil de, 6.000 tane rakam istenseydi? Bu mantikla 6.000 tane degisken tanimlamak gerekecekti. :D


2-) Oysa biz, bir tane dizi degiskeni belirleyerek, ve bunu for() döngüsüyle destekleyerek, o kadar kod karmasasindan kurtulabiliriz:

var ornek:Array=new Array(99);


for(var i:uint=0;i<=100;i++){

ornek=i*5;
}


trace(ornek[9]); //Sonuç 45 çikar;
trace(ornek[99]); // Sonuç 495 çikar;



Yukaridaki kodla istegimizi gerçeklestiririz. 6.000 tane istenmesi durumunda,yukaridaki for döngüsündeki “i<=100” kodunu “i<=6000” seklinde degistirerek bu istegi gerçeklestirmis olurduk.


1 yorum: