Bu sayfadaki yazılar
Sayfanın metni
Sayfa 35
Y Bob(n) 'n' numaralı bob'un o anki yatay pozisyonunu, bu fonksiyon yardımıyla öğrenebilirsiniz. Bob(n) 'n' numaralı bob'un o anki şekil numarasını, bu fonksiyon yardımıyla öğrenebilirsiniz. Şimdi de bu kadar teoriden sonra, biraz da pratiğe geçelim. Aşağıda, bob'larla ilgili örnek programımız yer alıyor.
AMOS (C) 1990 — Buropress Software, Ltd.
BOB (BLITTER OBJECTS) ÖRNEK PROGRAM #1
dok
R-13 : Rem DAİRELERİN YARICAPI N-7:Rem DAİRE SAYISI (MAX:
INIT IMAGESİR| ACTIONIN|
Procedure INIT Screen Open 0,320,256,4,Lowres Hide : Curs Off Flash Off : Cls 0 Palette 0,$FFF,SAAA,$666 End Proc
Procedure İMAGESİR| For To 3 Ink A Circle R,R,R Paint R,R Get Bob A,0,0 To R*242,R*242 Next Cis 0 End Proc
Procedure ACTIONİN| Randomize Timer Synchro Off Double Buffer Priority Reverse On
Ün X$4"(1,4,6)01
PEY5/013X.12X.120.22
Y$-"(1,1,2X
2M1,1,201,-1,2X(1,-2,2)
For A-0 To N X-Rnd(240) : YARnd(200)
For C-A To A4(N41)*2 Step Add F,1,1 To 3 Set Bob C,1,, Bob C,X,Y,F Channel C To Bob C Move X C,X$
Move Y C,Y$ Move On C Synchro Wait Vbi Next Next
Repeat Synchro : Wait Vbi Until Mouse Key Fade 4 : Repeat Synchro : Wait Vbi Until Timer>60 Screen Close Screen End Proc
Artık bu ayki okuyucu mektuplarına geçebiliriz. İlk olarak; köşemizin okurlarından sayın Çağatay Ündeğer'in sorunlarını çözmeye çalışalım. 1. AMOS, Türkçe klavyeye nasıl çevrilir? Bu problemi çözebilmek için ilk önce, bir Türkçe karakter seti çizmelisiniz. Bu işlemi, herhangi bir ticari font editörü veya bilgisayarınızla birlikte verilen Extras disketindeki FED (Font Editor) programıyla gerçekleştirebilirsiniz. Normalde, kodları 32-127 arasında olanlar, standart karakter setinde kullanılır. Ayrıca, AMOS da, 0-31 arası kodları ve 128-159 arası karakterleri, bazı özel amaçlara yönelik olarak kullandığından, Türkçe'nin özel karakterlerini bu aralıklara da koyamıyoruz. Bu yüzden, Türk harfleri için, 160-255 arasındaki ASCII kodlarını kullanmalıyız. Biz, bunun için, 160-171 arası karakterleri kullanıyoruz. Bu ilk aşamayı hallettikten sonra, bu karakter setini kullanabilmeniz için şu yolu izlemelisiniz.
Önce, FONT CONVERTER.AMOS programı yardımıyla, karakter setinizi AMOS'un standart font dosyası (Default.Font) haline dönüştürmelisiniz. Yalnız, bunu yapabilmeniz için, karakter setinizin, 8x8 ebatında ve 'Fixed Width' olması yani tüm karakterlerin genişliklerinin sabit olması gerekir. FONT CONVERTER.AMOS programı, karakter setinizi FONTS: directory'sinde arayacağından, ilk etapta, yaptığınız karakter setini açılışta kullanacağınız disketin FONTS directory'sine kopyalamalısınız. Örneğin, fontunuz, 'X' ismindeyse, 'X' directory'sini ve 'X.font' dosyasını, AMOS'u yüklerken kullandığınız diskete kopyalayın. Ardından, bilgisayarınızı resetleyin ve bu diski takarak AMOS'u yükleyin ve FONT CONVERTER.AMOS programını yükleyip çalıştırın. Program, çalıştıktan sonra farenin sağ tuşu ile, menüyü çıkartın ve buradan, yaptığınız fontun ismini seçin. Bilgisayar, fontları kendi formatına geçirdikten sonra SAVE CURRENT AMOS FOLDER seçeneği ile, fontu kaydedin. Karakter setinizi, AMOS'un formatına geçirmeyi başardınız. Ne var ki, klavyenizin bu haliyle Türkçe karakterlerinize ulaşamazsınız. Bu yüzden, KEYBOARD DEFINER.AMOS programı ile, Türkçe karakterlerinizi çeşitli tuşlara yükleyip, bu tuşların görevlerini de, ALT, SHIFT veya her ikisinin de birlikte kullanılmasıyla elde edilen bir tuş kombinasyonuna aktarmalısınız. Tüm tuşları tanımladıktan sonra da, AMOS SYSTEM directory'sindeki DEFAULT.KEY dosyasının üzerine kaydedin. Geçmiş olsun, artık tamamen Türkçe bir AMOS disketine sahipsiniz. Hatta, CONFIG.AMOS programıyla, AMOS'taki tüm yazıları da Türkçe'ye çevirebilirsiniz.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 34
BOB'LAR (BLITTER OBJECTS): Sprite'ların aksine bob'lar, yazılım ürünüdürler. Ancak ekrana getirilmelerinde AMIGA'nın özel bir birimi olan BLITTER'dan yararlanılarak maksimum hız elde edilir. Ekranın birer parçasıdırlar. Paletleri ise, ekran paletinin tamamen aynısıdır. Yani, bob'un 1. rengi, ekranın da 1. rengidir. Yazılım ürünü olduklarından dolayı, esnekliği de beraberlerinde getirmişlerdir. Yani büyüklük ve sayılarında sınırlayıcı etken sadece hafızadır. Renk sayıları ise ekranın renk sayısı ile sınırlıdır. Ancak, bu kadar avantajlarının yanısıra, bazı dezavantajları da bulunmakta. Bu dezavantajlar şöyle özetlenebilir: 1. Bob'lar, altlarında bulunan ekran parçasının da hafızada bir yere kopyalanması gerektiğinden, sprite'lardan daha fazla hafızaya gereksinim duyarlar (Ancak bu engellenebilir.). 2. Ekrandaki bob'ların sayısı arttıkça, (sprite'ların aksine) çizim işlemleri uzayacağından dolayı, bob'larınızın hareketleri akıcılığını kaybeder, yani yavaşlar. 3. Ekranda bulunan bob'ların çizimleri, tarama satırı ekranı görünür ekranı çizmeye başlayana kadar bitmiyorsa, bob'larda istenmeyen bir kırpışma meydana gelir. Bu kırpışmayı önlemek için, görünen ekranın (physical screen), görünmeyen bir kopyası (logical screen) daha alınır ve tüm bob çizim işlemleri önce bu ekranda yapılır. Sonra, görünen (physical) ve görünmeyen bu iki ekran yer değiştirir ve görünen ekran görünmez hale, görünür ekran da görünür hale gelir ve bu işlem böylece devam eder. Bu yönteme Double Buffering adı verilmiştir. Bu sayede, bob kırpışmaları önlenir. Ancak, açılan bu ekstra ekran da hafızada, orijinali kadar yer işgal eder.
Şimdi de bob'lar ekrana getirilene kadar izlenen aşamaları inceleyelim. 1. Ekranda daha önce bulunan tüm bob'lar temizlenir (Bob Clear). Yani, bob'ların altlarında kalan ekran parçaları, eski yerlerine kopyalanır ve ekranın bozulması önlenir. 2. Bob'ların pozisyonları değiştirilir. 3. Bob'ların yeni pozisyonlarına çizilmeden önce, altlarında kalacak olan ekran bölgesi, bir hafıza bölgesine kopyalanır. 4. Bob'lar, yeni pozisyonlarına çizilir (Bob Draw). Normalde bu işlemlerden, 1, 3 ve 4 numaralı olanlar, AMOS tarafından otomatik olarak düzenlenirler ve sizin bunlardan haberiniz dahi olmaz. 2. aşamadaki işlem ise, sizin tarafınızdan gerçekleştirilir. Uzun zaman bob'ları kullandığınız halde bu adımlardan haberiniz dahi olmayabilir. Ancak, bazı durumlarda, AMOS'un gerçekleştirdiği bu adımlar işinize gelmeyebilir. Bu yüzden, bu mantığı kavradıktan sonra, her türlü sorununuzu çözebilirsiniz. Eğer AMOS'un bu adımları otomatik olarak gerçekleştirmesinden memnun değilseniz, manual modu seçersiniz (Bob Update Off) ve tüm bu işlemleri gerekli komutları vererek kendiniz gerçekleştirirsiniz. Karmaşık konulara daldığımız için bizleri bağışlayın. Şimdi de sık kullanılan bazı bob komutlarını inceleyelim. * Bob n,x,y,i Bob kullanımındaki temel komuttur ve 'n' numaralı bob'u, verdiğiniz pozisyonda, 'i' numaralı imaj şeklinde görüntüler. * Double Buffer Bob'ların ekranda titremelerini engellemek amacıyla kullanılır. Daha geniş açıklamasını yukarıdaki paragraflarda bulabilirsiniz. * Limit Bob n,x1,y1 to x2,y2 'n' numaralı bob'un verilen dörtgensel bölgenin dışında görüntülenmemesini sağlar. Bu komutu hiç parametre vermeden kullanırsanız (yani 'Limit Bob' olarak) daha önce verilen Limit Bob komutlarını geçersiz kılar, yani bob'larınız, normalde olduğu gibi tüm ekranda görünür hale geçer. * Bob Update Off/ On Normalde tüm bob'lar, verdiğiniz koordinatlarda anında görüntülenirler. Ancak bu olay, bazen amaçlarınıza uygun olmayabilir. Bu durumda, Bob Update Off komutunu vererek bob'ların, koordinat değişimlerinde yeni koordinatlarında görüntülenmelerini iptal edebilirsiniz. Bu durumdan kurtulmak için de, Bob Update On komutunu verebilirsiniz. * Bob Update Bob Update Off ile bob yenilenmelerini (refresh) kapadıysanız, Bob Update komutunu her verişinizde, bob'larınızın yeni pozisyon ve şekillerinin geçerli olmasını sağlarsınız; yani, onları tazelemiş olursunuz. * X Bob(n) 'n' numaralı bob'un o anki dikey pozisyonunu, bu fonksiyon yardımıyla öğrenebilirsiniz.