Amiga Dünyası sayı 19, sayfa 34

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 34

Merhaba... Dergimizin birinci sayısından beri süregelen Amiga Basic dersleri, tüm eleştiri ve "yılan hikayesi" benzetmelerine aldırmadan sürüyor. Şaka bir yana, hep birlikte epeyce yol katettik değil mi? Hemen söze girelim ve SCROLL komutu ile başlayalım.

SCROLL KOMUTU: Kullanım Şekli: SCROLL (x1,y1)-(x2,y2),kayma-x,kayma-y

Şekilleri ekranda istenen yönlere kaydırarak hareket ettirmek için kullanılır. SCROLL, ekranda dört köşe bir alan tanımlayarak onu herhangi bir yöne kaydırmanıza izin verir.

(x1,y1)-(x2,y2), kaydırmak istenen alanı tanımlayan pixel koordinatlarıdır, kayma-x, yatay kayma; scroll-y dikey kayma için kullanılacak pixel sayısıdır. scroll-x için verilen pozitif değerler sağa doğru, negatif değerler sola doğru; scroll-y için verilen pozitif değerler ise aşağı, negatif değerler yukarı doğru kayma sağlar.

SCROLL yönergesi her çalıştırıldığında istenen kayma hareketini bir kez yapar. Sürekli bir kayma isteniyorsa, SCROLL yönergesi bir döngü içerisine yerleştirilebilir.

Aşağıdaki örneği yazıp çalıştırırsanız, komutun nasıl çalıştığını daha iyi anlayacaksınız:

X1=10:y1=10:x2=30:y2=20 d=1 DIM s% (6+ ((y2-y1+1) *2 *INT ((x2-x1

+ 16)/16)*d)/2) SCREEN 1,320,200,d,1 WINDOW 1, "KAYAN YAZI", (0,0)-

(311,185),20,1 LINE (x1,y1)-(x2,y2),1,bf GET (x1,y1)-(x2,y2),s% PUT (x1,y1),s% LOCATE 2,6:PRINT "Durdurmak için

mouse'u klikleyin"

LINE(0,100)-(311,150),1,b WHILE MOUSE(0)=0 PUT (1,110),s% FOR x=1 TO 20 SCROLL (1,101)-(310,149),5,0 NEXT x WEND SCREEN CLOSE 1 END

SCROLL, tüm bir ekranı ya da pencereyi kaydırmaz; sadece pencere içindeki küçük bir bölümü kaydırır. Büyük bir alanı kaydırmaya çalışırsanız, hız düşer. Komuttan en iyi sonuç, düşük çözünürlük ve az bit plane ile alınır.

SGN KOMUTU: Kullanım Şekli: Sonuç=SGN(değer)

Sayısal değerin sıfırdan küçük, sıfıra eşit ya da sıfırdan büyük olduğunu bildirir:

Sonuç -1 olursa, değer negatif; Sonuç 0 olursa, değer 0; Sonuç 1 olursa, değer pozitif olur. Bu fonksiyonu, aşağıdaki komutun değişkeni (a) yerine çeşitli değerler yazarak deneyebilirsiniz:

PRINT SGN(a)

SHARED KOMUTU: Kullanım Şekli: SHARED değişken-listesi

Bu komut altprograma ana program değişkenlerinden değişken-listesinde belirtilenlerin genel değişkenler olacağını bildirir. SHARED komutundan sonra verilen değişken isimleri, birbirlerinden virgül ile ayrılır. Birlikte kullanılacak değişkenlerden biri ya da bir kısmı dizi değişkeni ise, isminin sonuna boş bir parantez yerleştirilir.

SHARED komutu, sadece altprogram içinde kullanılabilir. Altprogram farklı değişkenleri listeleyen birden fazla SHARED yönergesi içerebilir.

SUB Test STATIC SHARED TestNo,TastDizi(),Test$

SIN KOMUTU: Kullanım Şekli: SIN(değer)

SIN fonksiyonu, radyan olarak girilen açı değerinin sinüsünü hesaplar. Fonksiyon çeşitli açıların sinüs değerini bulmak için kullanılabileceği gibi, program içinde de çeşitli hesaplamalarda kullanılabilir:

PSET(0.90) FOR x=0 TO 617 y=90+80*SIN(x/40) LINE -(x,y) NEXT x

programı, ekrana sürekli bir eğri çizer.

SLEEP KOMUTU: Kullanım Şekli: SLEEP

Bu komut, bir event trapping yaptığınız zaman çok faydalıdır. Komutu kesmek için bir şey yapılana kadar programın çalışmasını durdurur ve event trapping'i kontrol altına alabilir. Tabii bu her durumda gerekli değildir. Aşağıdaki işlemler SLEEP fonksiyonunun işlevini durdurur: . Klavyeden bir tuşa basmak . Sol mouse tuşunu kliklemek . Pulldown menülerden bir seçim yapmak . Objelerin çarpışması . Bir TIMER çalışmasının sona ermesi

SOUND KOMUTU: Kullanım Şekli: SOUND frekans, süre [ , [ses yüksekliği] [, ses kanalı]]

Bu komut, belirtilen özelliklerde bir ses üretir.

FOR x=0 TO 255:SOUND 880.1.x: NEXT x

komutunu yazın ve çıkardığı sesi duyun. Aynı komutu stereo için aşağıdaki şekilde kullanabilirsiniz:

FOR x=0 TO 255 SOUND 440,l,x,0 SOUND 440,l,255-x,l NEXT x

Evet sesi ürettik, ama melodik olmaktan çok uzak değil mi? Sesleri melodik yapmak için, frekans ve oktav bilgilerine ihtiyacımız var.

frekans, hertz cinsinden verilir ve bir tamsayı ya da ondalık sayı olarak verilebilir. Minimum frekans 20, maksimum frekans ise 15000 hertz'dir. Minimum frekans değerinden daha küçük bir değer girilirse, AmigaBasic 20 hertz'lik bir ses üretir. Aynı şekilde 15000'den daha yük-

AMIGA BASIC

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