Amiga Dünyası sayı 29, sayfa 34

Bu sayfadaki yazılar

Sayfanın metni

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.

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