Amiga Dünyası sayı 16, sayfa 43

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 43

İkinci satırda yer alan iki word, yazımızın gadget içerisinde yerleştirileceği konumdur. Ardından gelen long-word, gadget içinde font kullanımı içindir. Sistem fontundan farklı bir fontla text'imizi içerisine yerleştirmek istiyorsak, buraya fontun adres pointer'ini yazmamız gerekli. Tabii ki bundan önce gerekli library rutinlerini kullanarak fontu açmamız ve disketten yüklemiş olmamız şart. Sıradaki adres pointer'ı hemen az aşağıdaki esas yazıyı göstermekte. En son long-word da bir adres pointer'i ve diğer bir text alt structure'ini tanımlamak için kullanılmakta. Gördüğünüz gibi burada da zincirleme bağlantı yöntemi hala kullanılmakta. Biz, başka bir yazıyı gadget içerisinde basmak istemediğimizden buraya 0 değeri giriyoruz. Fakat yazımız birkaç satırdan oluşuyorsa, bunların herbirini zincirleme yöntemiyle birbirine bağlamak gerekmekte. Sistem ancak bu şekilde diğer yazı satırlarını da görebilecektir. REALLYITEXTTEXTI label'ı ilk gadget'imizin text'ini tanımlamak için kullanılmakta. Gadget text'inin sonuna bitişi belirtmek için bir 0 değeri koymalıyız. Şayet 0 değerini eklediğimizde adres göstergecimiz tek sayılı bir adrese denk düşerse, ya bir 0 değeri daha ekleyin, ya EVEN komutunu ekleyin ya da tırnakların arasındaki yazının sonuna bir boşluk ekleyin. Bu üç yöntem sayesinde yine adres sayacını çift sayılı bir adrese getirmiş oluruz. GADGETTEXT da bittiğine göre, sıradaki diğer bir alt structure'a geçebiliriz: IMAGE. Bu alt structure yardımıyla gadget'imizin kenar çizgilerini tanımlayabilir ya da gadget'ımıza bir resim ekleyebiliriz. İkinci seçenek sayesinde hem programlarınız daha kolay anlaşılır, hem de görsel açıdan da zengin olacak. Bizim örneğimizde, Image REALLYGADGETIMAGE altında bulunmakta. Hemen bu label'dan sonra gelen satırlara bir göz atıyoruz: REALLYGADGETIMAGE: dc.w 2,1

REALLYGADGETIMAGE BORDERVECTORS'ü REALLYGADGETIMAGEBORDERVECTORS: 1,0,70,0,70,18,1,18,1,0 İlk satırdaki iki word, gadget görüntüsünü gadget değme bölgesi üzerinde yerleştirmek için kullanılır. Bu değerler yatay ve dikey koordinat eksenleri üzerinde + ve - olarak kayma miktarını belirler. Bu sayede gadget image'i, gadget değme bölgesi üzerinde istediğiniz yere koyabilirsiniz. Değerler orta nokta merkez alınmak şartıyla kayma piksel olarak belirler. Bundan sonraki iki değer (3 ve 0), çizim ve zemin renklerini tanımlamakta. Ardından gelen byte ise çizim modunu belirler. Bunun için gadgettext alt structure'indaki yazım modları tablosuna bakabilirsiniz. 5 değeri, kenarları tanımlayan 5 çift koordinatın olduğunu belirtmekte. Image structure'inin en alt satırındaki ilk long-word, kenar çizgilerinin koordinatlarını içeren tabloyu gösterir. İkinci long-word, varsa diğer bir image göstermek için kullanılmakta. Bu sayede istediğiniz bitplane sayısında (yine de maksimum 5) gadget görüntüsü yaratabilirsiniz. Gelelim kenar çizgilerini içeren tablomuza: GADGETBORDERVECTORS. Örneğimizde kenarı oluşturan 5 çift koordinat değeri var. Bunlardan ilk ikisi (1 ve 0) çizim kalemimizi yerleştirir. Daha sonraki koordinat çiftleri kalemin sırasıyla gideceği koordinatlardır. Kalem hareket ederken kenar çizgilerini çizecek ve bir dörtgen yaratacaktır. Tabii biz bu çizimi adım adım göremeyiz. Zira blitter bu çizgileri muhteşem bir hızla yaratmakta. Son iki koordinat çifti ise, tekrar başlangıç noktasına dönmemizi ve bu şekilde gadget'i kutuyu kapamamızı sağlar. Örnek programımızın en sonundaki DEPO değişkeni, zaman zaman a6 register'inin içeriğini saklamak için kullanılmakta. Eh, örnek programımızın açıklaması bu kadar. Zaten bize ayrılan sayfalar da burada dolmaya başladı. Artık bana da bir dahaki ay görüşmek üzere hoşçakalın demekten başka bir şey kalmıyor.

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