15.01.2015 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!