Amiga Dunyasi - Sayi 19 (Aralik 1991).pdf - Retro Dergi
Amiga Dunyasi - Sayi 19 (Aralik 1991).pdf - Retro Dergi
Amiga Dunyasi - Sayi 19 (Aralik 1991).pdf - Retro Dergi
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
DİLLER<br />
AMIGA BASIC<br />
MAHMURE ÜNYELİ<br />
Merhaba.... <strong>Dergi</strong>mizin birinci sayısından<br />
beri süregelen <strong>Amiga</strong> Basic dersleri,<br />
tüm eleştiri ve "yılan hikayesi" benzetmelerine<br />
aldırmadan sürüyor. Şaka bir yana,<br />
hep birlikte epeyce yol katettik değil mi<br />
Hemen söze girelim ve SCROLL komutu<br />
ile başlayalım.<br />
SCROLL KOMUTU:<br />
Kullanım Şekli:<br />
SCROLL (xl ,yl )-(x2,y2),kayma-x,kaynıa-y<br />
Şekilleri ekranda istenen yönlere kaydırarak<br />
hareket ettirmek, için kullanılır.<br />
SCROLL, ekranda dört köşe bir alan tanımlayarak<br />
onu herhangi bir yöne kaydırmanıza<br />
izin verir.<br />
(xl,y])-(x2,y2), kaydırmak istenen alanı<br />
tanımlayan pixel koordinatlarıdır, kaymax,<br />
yatay kayma; scroll-y dikey kayma için<br />
kullanılacak pixel sayısıdır. scroll-x için<br />
verilen pozitif değerler sağa doğru, negatif<br />
değerler sola doğru; scroll-y için verilen<br />
pozitif değerler ise aşağı, negatif değerler<br />
yukarı doğru kayma sağlar.<br />
SCROLL yönergesi her çalıştırmışında<br />
istenen kayma hareketini bir kez yapar.<br />
Sürekli bir kayma isteniyorsa, SCROLL<br />
yönergesi bir döngü içerisine yerleştirilebilir.<br />
Aşağıdaki örneği yazıp çalıştırırsanız,<br />
komutun nasıl çalıştığını daha iyi anlayacaksınız:<br />
X1=10:y1=10:x2=30:y2=20<br />
d=1<br />
DIM s% (6+ ((y2-y1+1) *2 *INT ((x2-x1<br />
+ 16)/16)*d)/2)<br />
SCREEN 1,320,200,d,1<br />
WINDOW 1, "KAYAN YAZI", (0,0)-<br />
(311,185),20,1<br />
LINE (x1,y1)-(x2,y2),1,bf<br />
GET (x1,y1)-(x2,y2),s%<br />
PUT (x1,y1),s%<br />
LOCATE 2,6:PRINT "Durdurmak için<br />
mouse'u klikleyin"<br />
LINE(0,100)-(311,150),1,b<br />
WHILE MOUSE(0)=0<br />
PUT (1,110),s%<br />
FOR x=1 TO 20<br />
SCROLL (1,101)-(310,149),5,0<br />
NEXT x<br />
WEND<br />
SCREEN CLOSE 1<br />
END<br />
SCROLL, tüm bir ekranı ya da pencereyi<br />
kaydırmaz; sadece pencere içindeki küçük<br />
bir bölümü kaydırır. Büyük bir alanı<br />
kaydırmaya çalışırsanız, hız düşer. Komuttan<br />
en iyi sonuç, düşük çözümleme ve<br />
az bit plane ile alınır.<br />
S(JN KOMUTU:<br />
Kullanım Şekli: Sonuç=SGN(değer)<br />
Sayısal değerin sıfırdan küçük, sıfıra<br />
eşit ya da sıfırdan büyük olduğunu bildirir:<br />
Sonuç -1 olursa, değer negatif;<br />
Sonuç 0 olursa, değer 0;<br />
Sonuç 1 olursa, değer pozitif olur.<br />
Bu fonksiyonu, aşağıdaki komutun değişkeni<br />
(a) verine çeşitli değerler yazarak<br />
deneyebilirsiniz:<br />
PRINT SGN(a)<br />
SHARED KOMUTU:<br />
Kullanım Şekli:<br />
SHARED değişken-listesi<br />
Bu komut altprograma ana program değişkenlerinden<br />
değişken-listesinde belirtilenlerin<br />
genel değişkenler olacağını bildirir.<br />
SHARED komutundan sonra verilen<br />
değişken-isimleri, birbirlerinden virgül ile<br />
ayrılır. Birlikte kullanılacak değişkenlerden<br />
biri ya da bir kısmı dizi değişkeni ise.<br />
isminin sonuna boş bir parantez yerleştirilir.<br />
SHARED komutu, sadece altprogram<br />
içinde kullanılabilir. Altprogram farklı değişkenleri<br />
listeleyen birden fazla SHA-<br />
RED yönergesi içerebilir.<br />
SUB Test STATIC<br />
SHARED TestNo,TastDizi(),Test$<br />
SIN KOMUTU:<br />
Kullanım Şekli:<br />
SlN(değer)<br />
SIN fonksiyonu, radyan olarak girilen<br />
açı derinin sinüsünü hesaplar. Fonksi-<br />
yon çeşitli açıların sinüs değerini bulmak<br />
için kullanılabileceği gibi, program içinde<br />
de çeşitli hesaplamalarda kullanılabilir:<br />
PSET(0.90)<br />
FOR x=0 TO 617<br />
y=90+80*SIN(x/40)<br />
LINE -(x,y)<br />
NEXT x<br />
programı, ekrana bir sürekli bir eğri çizer.<br />
SLEEP KOMUTU:<br />
Kullanım Şekli:<br />
SLEEP<br />
Bu komut, bir event trapping yaptığınız<br />
zaman çok faydalıdır. Komutu kesmek<br />
için birşey yapılana kadar programın çalışmasını<br />
durdurur ve event trapping'i<br />
kontrol altına alabilir. Tabii bu her durumda<br />
gerekli değildir. Aşağıdaki işlemler<br />
SLEEP fonksiyonunun işlevini durdurur:<br />
. Klavyeden bir tuşa basmak<br />
. Sol mouse tuşunu kliklemek<br />
. Pulldown menülerden bir seçim yapmak<br />
. Objelerin çarpışması<br />
. Bir TIMER çalışmasının sona ermesi<br />
SOUND KOMUTU:<br />
Kullanım Şekli:<br />
SOUND frekans, süre [ , [ses yüksekliği]<br />
[, ses kanalı]]<br />
Bu komut, belirtilen özelliklerde bir ses<br />
üretir.<br />
FOR x=0 TO 255:SOUND 880.1.x:<br />
NEXT x<br />
komutunu yazın ve çıkardığı sesi duyun.<br />
Aynı komutu stereo için aşağıdaki şekilde<br />
kullanabilirsiniz:<br />
FOR x=0 TO 255<br />
SOUND 440,l,x,0<br />
SOUND 440,l,255-x,l<br />
NEXT x<br />
Evet sesi ürettik, ama melodik olmaktan<br />
çok uzak değil mi Sesleri melodik yapmak<br />
için, frekans ve oktav bilgilerine ihtiyacımız<br />
var.<br />
frekans, hertz cinsinden verilir ve bir<br />
tamsayı ya da ondalık sayı olarak verilebi<br />
lir. Minimum frekans 20, maksimum frekans<br />
ise 15000 hertz'dir. Minimum frekans<br />
değerinden daha küçük bir değer girilirse,<br />
<strong>Amiga</strong>Basic 20 hertz'lik bir ses<br />
üretir. Aynı şekilde 15000'den daha yük-<br />
AMİGA DÜNYAS1 40