Plazma sayı 6, sayfa 58

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 58

Space Invaders oyununun bir diğer özelliği ise siyah arkaplana sahip olmasıdır. Yani yaratıklar bir arkaplanın üzerine basılmazlar. Peki ya arkaplanda bir resim olacak olsaydı ne olacaktı? Sil-çiz kadar basit bir yöntem kullanmamız mümkün olmayacaktı. Şimdi bu duruma bir göz atalım.

Şekil 3.

Öncelikle yaratığın üzerine çizileceği arkaplanın hafızada bir kopyasının durması gerekir. Bir diğer seçenek ise yaratığın basılacağı alan bir dikdörtgen şeklinde düşünülerek sadece bu kısmın bir kopyası alınabilir. Daha sonra yaratık bu alana yine dikdörtgen biçiminde basılabilir. Ancak arkaplanın silinmemesi için matematikteki VEYA (OR) işleminin kullanılması gerekir. Bir sonraki karede, arkaplan yaratığın bulunduğu alana yeniden kopyalanarak yaratık silindikten sonra, yaratığın yeni pozisyonuna uygun bir biçimde arkaplan hafızaya alınır ve yaratık yeni pozisyonuna yerleştirilir. Bu işlem her harekette tekrarlanmak zorundadır. Grafik moduna ve yaratığın çizimine bağlı olarak yaratık basılmadan önce VE (AND) işlemi ile yaratığın basılacağı alanı arkaplan üzerinde maskelemek de gerekebilir. Bütün bu işlemler ciddi zaman alan işlemlerdir ve oyunun akıcılığını önemli ölçüde etkilerler.

Arkaplan üzerine hareketli grafik basma işinin çözümü donanımsal yaratık desteğinde gizlidir. Konumuz olan Atari 800 XL/XE bilgisayarlarında grafik işlemlerinden sorumlu çip olan Antic çipi yaratıklardan sorumlu değildir. Bu işi GTIA çipi yani Antic'deki görüntüyü TV ya da monitöre aktarma işinden sorumlu olan çip üstlenir. Kısacası Antic çipi ekrandaki görüntüyü oluşturduktan sonra GTIA çipi bu görüntünün üzerine dilediği gibi yaratık basabilir. Hatta bu yaratıkları şeffaf bile basması mümkündür. Atari'deki yaratık desteğini televizyonunuzun sesini açtığınızda ekrana çıkan volume seviye grafiği gibi düşünebilirsiniz.

Oyuncular ve Füzeler

Her donanımsal yaratık desteği olan bilgisayarda kendisine özel sınırlamalar vardır. Aynı anda kaç yaratık gösterilebileceği, bunların ekranda hareket ettirilme kuralları, çözünürlükleri, renk sayıları, çarpışmaları gibi birçok kriter ve sınırlama mevcuttur.

Atari'de 4 oyuncu ve 4 füze şeklinde toplamda 8 yaratık bulunmaktadır. Bu 8 yaratık birbirinden bağımsız hareket edebilirler ve arkaplanı etkilemezler. Yani çok az bir zaman harcayarak ekranda 8 yaratık göstermek mümkündür. Ancak oyuncular ve füzeler aynı özelliklerde değillerdir. 4 füze bir arada kullanıldığında fazladan 1 oyuncu elde edilebilir. Bunun nedenlerini birazdan göreceğiz.

Atari'de Yaratıkların Hareket Etme Prensibi

Yaratıklar iki boyutlu oldukları için iki eksende hareketleri söz konusudur; X ve Y eksenleri. Genellikle her iki eksen için birer hafıza adresi kullanılarak yaratık pozisyonlarını değiştirmek mümkündür. Ancak Atari'de yaratıklar yalnızca X ekseninde bu şekilde hareket ettirilebilirler. Dikeyde ise hareket biraz farklı bir biçimde gerçekleşmektedir. Çünkü Atari'de yaratıklar dikeyde tüm ekran yüksekliğini kaplamaktadırlar.

Şekil 4.

Resimde görülen kırmızı, yeşil, mavi ve sarı bloklar her bir yaratığın çizilebileceği alanları sembolize etmektedirler (normalde ekranda böyle barlar görmeyeceksiniz). Yaratıkların çizim genişlikleri sabitken, yükseklik olarak bir sınırlama yoktur. Bir yaratık tüm ekran boyunda olabilir. Örnek olarak resimdeki uzay gemisi, çarpı sembolü, iki yönlü ok birer yaratık olduğu gibi PLAZMA #6 yazısı da tek bir yaratıktır.

Bu yaratıklar hafızanın çeşitli bölümlerinden grafik verisi okuyabilirler. Ancak hafıza adresleri belirlendikten sonra hep sabit bir adresten veri okudukları için grafik verilerini hafıza üzerinde kaydırarak yaratıkları Y yönünde hareket ettirmiş oluruz. Bu işlem uzay gemisi için oldukça hızlı yapılabilirken, PLAZMA #6 yazısının bulunduğu yaratıkta daha uzun süren bir işlemdir. Kısacası yaratık grafiğinin yüksekliği arttıkça Y eksenindeki hareket de orantılı bir biçimde daha çok zaman almaktadır. Fakat X eksenindeki hareket yaratığın grafik verisinden kesinlikle etkilenmez ve yalnızca bir hafıza adresini değiştirerek yaratık hızlıca yeniden pozisyonlandırılabilir.

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