Amiga Dünyası sayı 7, sayfa 29

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 29

Merhaba.. Hatırlarsanız geçen ay Director programının genel özelliklerine değinmiş ve komutlarını tanıtmaya başlamıştım. Bu sayıda programın kalan komutlarını tanıtarak açıklamalarımızı tamamlayacağım. Açıklamaların sonunda sizlere yararlı olacağını düşündüğüm bir de terminoloji vereceğim.

FADE <z>, <buf>, <hız> <buf> ile belirtilen ekranın renklerinin yavaş yavaş açılmasını ya da kapanmasını sağlar. Bu, demonstrasyonlarda çok kullanılan bir efekttir. <z> ile renklerin açılacağı mı (1 değeri), yoksa kapanacağı mı (0 değeri) belirtilir. <hız> ile de renk değişim hızı ayarlanabilir. En iyi hız değerleri 0-10 değerleridir. 0 en hızlı renk değişimini belirtir.

FILL <mod>, <x>, <y> <x>,<y> koordinatları etrafında çevrili olan kapalı çokgenin içinin doldurulmasını sağlar. <mod> değeri 0 olduğunda çokgenin kenarlarını oluşturan çizgiler boyanmaz. <mod> 1'e eşit ise kenar çizgileri de boyanır. Boyama rengi yine kalem rengidir.

FIXPALETTE <z> <z> değeri 1 olursa DISPLAY, WIPE ve DISSOLVE komutlarıyla yapılan renk değişimleri uygulanmaz. Bu sayede renklerin bozulmaması sağlanabilir. Daha önceden FIXPALETTE 1 ile renkler kilitlenmiş ise, bunları FIXPALETTE 0 değeri ile tekrar açabilirsiniz. Normalde renkler kilitli değillerdir.

FOR [n]=<a> TO <b> STEP <c> BASIC'te olduğu gibi n değişkenine sırayla <a>'dan <b>'ye kadar olan rakamları <c> adımlarıyla atlayarak yazar. Eğer STEP ve <c> değerleri verilmemişse, bu değer 1 olarak alınır. Her FOR...TO komutundan sonra gelen rutinin sonunda NEXT [n] komutu olmalıdır. Bu sayede [n]'in değerinin devamlı değişmesi sağlanabilir. Bu komut, programlarda her çeşit döngüleri yapmak için idealdir.

FREE <buf> Belirtilen resim ya da animasyon buffer'ını temizler. Bu sayede biraz hafıza kazanmış olursunuz. DISPLAY komutuyla ekran buffer'ı olarak tanımlanan resim buffer'ı FREE ile silinemez.

FREEFONT <no> LOADFONT <no> ile tanımlanan font buffer'ına yüklenmiş fontu (karakter setini) hafızadan siler.

GETKEY [a] Bir tuşa basılmasını bekler ve basıldığında ise bunun ASCII değerini [a] değişkenine yazar.

GETMAP <buf>, <ar> <buf> ile tanımlanan resim buffer'ının renk paletini '@' dizisine <ar> ile belirtilen elemandan sonrasına yazar. Bir resmin renk paleti 32 tane 2 byte'lık bilgiden oluşmuştur.

Her bir renk değerinin kırmızı, yeşil ve mavi oranlarını hesaplamak için aşağıdaki formülleri kullanmanız gereklidir.

[kırmızı] = [değer]/256 [yeşil] = ([değer]/16)%16 [mavi] = [değer]%16 Bu formüllerde [değer], GETMAP ile elde edilen iki byte'lık değerlerden her biridir.

GETMOUSE [x],[y] Bir mouse tuşuna basıldığı anda mouse işaretçisinin x ve y koordinatlarını [x] ve [y] değişkenlerine yazar.

GETPEN [z], <x>, <y> Ekran buffer'ında <x>,<y> noktasında belirtilen pikselin renk değeri [z] değişkenine yazılır.

GOSUB <satır> <satır> ile tanımlanan satırdaki alt-rutine gider, orada gerekli işlemleri yaptıktan sonra alt-rutindeki RETURN komutuyla programa kaldığı yerden devam eder.

GOTO <satır> <satır> ile belirtilmiş olan rutin ya da alt-rutine dönüşsüz olarak dallanır.

IF <şart> Koşullu işlem gerçekleştirmede kullanılır. <şart> ile tanımlanan koşul gerçekleşmişse komuttan ilk ENDIF ya da ELSE komutuna kadar olan komutlar gerçekleştirilir. Şart gerçekleşmemişse ve ELSE ile ters koşul için de komutlar girilmişse, program bu komutları uygular. ELSE komutu kullanılmamışsa program ENDIF'ten sonraki satırları işlemeye devam edecektir.

Bu komutu daha kolay anlayabilmek için aşağıdaki örneği inceleyin: IF A=5 ; A değişkeninin değeri 5 olduğunda: B=3 X=26 Y=19 ELSE ;5'ten farklı olduğunda: B=6 X=13 Y=38 ENDIF ; IF yönergesini bitir.

IFKEY [var] Komut uygulandıktan sonra bir tuşa basıldıysa bu tuşun ASCII değeri [var] değişkenine yazılır. Hiçbir tuşa basılmadığı zaman değişkenin içeriği -1 olur. Bu komutu, programın çalışması devam ederken kullanmak mümkündür. Program başında ya da gerekli yerlerde komut tanımlanır. Daha sonra değişkenin içeriği devamlı olarak kontrol edilir. Eğer tuşa basılmışsa (IF ile tuşun kodunu kontrol edebilirsiniz; böylece tuşun doğru tuş olup olmadığını da öğrenebilirsiniz) gerekli işlemler yapılır. Tabii tuşa basılmadığı zaman başka işlemler de gerçekleştirilebilir (ELSE).

IFMOUSE [x],[y] Mouse'un tuşlarından herhangi birinin basılıp basılmadığını kontrol eder. Eğer basılmışsa, bu noktanın koordinatları [x] ve [y] değişkenlerine yazılır. Basılmamışsa iki değişken de -1 değerine eşit olacaklardır. Bu komut da IFKEY komutu gibi bir defa çağrıldıktan sonra devamlı kontrol yapmaktadır.

Klavyeyle gezinmek için ← ve → tuşları.