Amiga Dünyası sayı 12, sayfa 46

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 46

Şimdi sıra geldi ekran kaydırma komutlarına. Daha önce hardware scrolling'in nasıl yapıldığını görmüştük. Aslında ekran içerikleri değiştirilmiyor, ekranın monitörde gösterildiği yer değiştiriliyordu. Bu sefer direkt olarak ekranın içeriği üzerinde oynama yapacağız. Buna software scrolling de denir.

AMOS yorumlayıcısı, 16'ya kadar kaydırma bölgesi tanımlanmasına izin verir. Her bölgeyi ayrı ayrı programlayabilirsiniz. Seçtiğiniz herhangi bir dikdörtgen bölgenin içerikleri yine sizin istediğiniz şekilde kaydırılabilir.

KOMUT: Def scroll KULLANILIŞ: Def scroll n,x1,y1 to x2,y2,dx,dy Bu komut, kaydıracağınız bölgeyi tanımlamak için kullanılır. 'n', bölge numarasıdır. '0' ile '15' arasında değerler alır. 'x1', 'y1', 'x2' ve 'y2' dikdörtgen bölgenin sınırlarını belirler. 'dx' ve 'dy' ise, bu bölgenin ne şekilde kaydırılacağını belirler. dx'e verilen değer pozitif ise, bölge içerisindeki alan o kadar piksel sağa, negatif ise sola doğru kayacaktır. Aynı olay, dikey hareketi tanımlayan 'dy' için de geçerlidir. Burada dikkat edilmesi gereken ve çoğunlukla hata yapılmasına sebep olan olay şudur: Tanımlanan bölgenin yeri kesinlikle değişmez. Sadece bu bölgenin içi hareket eder. Bunu birazdan aşağıda vereceğim örneği çalıştırarak görebilirsiniz.

KOMUT: Scroll KULLANILIŞ: scroll n Bu komut, 'n' numarası ile tanımlanmış olan kaydırma işlemini gerçekleştirir.

ÖRNEK PROGRAM 1: Rem **************************************** Rem ** ** Rem ** AMIGA DÜNYASI ** Rem ** AMOS Scroll Demo ** Rem ** ** Rem ** writtten by ** Rem ** Burak Ozdemir ** Rem** using AMOS ** Rem ** ** Rem** AMOS Copyright 1990 ** Rem ** Mandarin/Jawx ** Rem **************************************** Flash Off Curs Off For 1=1 To 200 Step 10 InkRnd(15) Draw 0,1 To 320,1 Draw 1,0 To 1,200 Next I For 1=1 To 2 X=Rnd(200) Y=Rnd(100) W=Rnd(120) H=Rnd(100) DX=Rnd(4)-2 DY=Rnd(4)-2 Def Scroll I,X,YTo X+W,Y+H,DX,DY Next I For 1=1 To 20 For N=l To2 Scroll N Wait 5 Next N Next I

Tabii AMOS'un ekran komutları bu kadarla kalmıyor. Fakat hepsini bu bölümde bitirmemiz mümkün değil. Ama yine de birkaç komut daha yazabilirim. Bunlardan ilki 'Screen copy' komutu.

KOMUT: Screen copy KULLANILIŞ:

Screen copy e1 to e2 Screen copy e1,x1,y1,x2,y2 to e2,x3,y3[,mod] Bu komut, bir ekranın bir bölümünü başka bir yere taşımak için kullanılır. Komutun birinci kullanılış şekli bir ekranın tamamını diğer bir ekrana kopyalamak içindir. Görüntü, 'e1' ekranından 'e2' ekranına kopyalanır. Bu arada ilk ekrandaki görüntünün de silinmeyeceğini unutmamak gerekir. Eğer bunu yeterli bulmuyorsanız, AMOS'un yaratıcıları daha etkili bir kullanım şeklini de mümkün kılmışlar. Bu sefer ekranın herhangi dikdörtgen bir bölümü diğer bir bölgeye taşınabilir. Üstelik isteğinize bağlı olarak belirtebileceğiniz 'mod' değişkeni ile bunu değişik şekillerde gerçekleştirmeniz mümkün. Ekim sayımızdaki 'Blitter'i tanıyor musunuz?' yazımızı okuduysanız, Blitter'in sadece hafızanın belirli bölümlerini bir yerden diğer bir yere taşımakla kalmayıp, aynı zamanda bunları birleştirebilmeyi ve bunlar üzerinde mantıksal işlemler yapabilmeyi becerdiğini de öğrenmişsinizdir. AMOS, blitter'in tüm bu özelliklerinden faydalanabilir, 'mod' parametresi, blitter'in gerçekleştirebileceği 255 değişik mantıksal işlemden herhangi biri olabilir. Bu konuda henüz çok derinlere girmeyeceğim; çünkü eğer ikili sayı sistemi veya mantıksal devreler ile aranız iyi değilse, kolay kaybolabilirsiniz. Yine de çok kullanılan birkaç modu açıklamakta yarar görüyorum. Bunlardan ilki, 'Replace' modu'dur. Bu mod'da, seçilen bölge aynen kopyalanır. Eğer 'mod' seçeneğini boş bırakmışsanız, otomatik olarak bu seçenek aktif hale geçer. Aynı olay 'mod'=192 iken de geçerlidir. Diğer bir mod, 'Invert' modudur. Bu sefer şeklin tersi kopyalanır. 'Tersi' demekle başaşağı olduğunu söylemek istemiyorum. Mantıksal olarak tersini kastediyorum. Örneğin bir piksele karşılık düşen 'bit pattern' '11011' ise, bu diğer tarafa '00100' şeklinde geçirilir. Bu seçenek için 'mod' değişkeninin değerini, '48' yapmalısınız. Bundan başka en çok kullanılan modlar 'and', 'or' ve 'xor' modlarıdır. Bunlara karşılık düşen değerler ise sırasıyla 128, 224 ve 96'dır. İşte yine bu komutun kullanılışıyla ilgili bir örnek:

ÖRNEK PROGRAM 2: Rem********************************************* Rem********************************************* Rem**** *** Rem**** AMIGA DÜNYASI *** Rem**** *** Rem**** AMOS COPY DEMO *** Rem**** *** Rem**** written by Burak OZDEMİR *** Rem**** ***

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