Plazma sayı 6, sayfa 59

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 59

Oyuncular

Önceki bölümde gördüğümüz 4 yaratık aslında oyunculara tekabül etmektedir. Oyuncuların yatay çözünürlükleri 8 pixeldir. Bu aslında oldukça düşük bir çözünürlüktür. Ancak elbette ki birden fazla yaratık yan yana getirilerek 16, 24, 32 hatta füzeler de kullanılarak 40 pixel genişliğe ulaşmak mümkündür. Yaratıklar ekranda gösterilirken her bir pixel 2 pixel genişliğinde gösterilmektedir. Yani 8 pixel genişliğindeki bir yaratık ekranda 16 pixellik bir alan kaplayacaktır.

Şekil 5.

Yaratıklar yatay eksende 2 ya da 4 kat, dikey eksende ise 2 kat genişletilebilirler. Yatayda 2 kat genişletilen bir yaratık 16 yerine 32 pixel, 4 kat genişletilen ise 64 pixel kaplayacak şeklinde görüntülenir. Yani yaratık haritasında yer alan her bir bit normalde 2, 2 kat genişletildiğinde 4, 4 kat genişletildiğinde 8 pixel genişliğinde ekrana çizilir.

Oyuncuların her biri hafızada 256 bytelık alanlardan veri okurlar. Aslında bu 256 byte'ın tamamı ekran alanına sığmamaktadır. İlk 8 byte ekranın üstünden dışarıda kalmaktadır. Ekranın görüntülenebilen alanı 240 byte kabul edilebilir. Bu durumda alanın sonunda yer alan yine 8 bytelik bir bölge daha görüntülenemez. Eğer yaratıklar Y ekseninde iki kat genişletilecek olursa bu durumda 256 bytelik alanın ilk 128 byte'ı grafik verisi olarak kullanılır ve her satır 2 kez tekrar eder. Ancak bu durum tüm yaratıkların hafıza yerleşimlerini değiştiren bir durumdur. Bunu ilerde göreceğiz.

Füzeler

Füzeler, oyuncularla büyük oranda benzerlikler içerirler. En temel farklılığı genişliklerinin 8 pixel yerine 2 (yazıyla "iki" :)) pixel olmasıdır. Elbette ki bu hayalinizdeki füzeyi çizebilmek için yeterli bir genişlik değildir. Ancak yine de füzeler mini kurşunlar atmak için kullanışlı bir yöntemdir. Peki niye 2 pixel ile sınırlıyız? Aslında bu sınır hakkında net bir görüş ortaya koymak zor da olsa benim söyleyebileceğim Atari donanımının maksimum 5 oyuncu niteliğinde yaratık destekleyebildiğidir. Bu oyunculardan 4'ü olduğu gibi kullanılırken 1 oyuncu dikey olarak 4'e bölünmüş ve 4 farklı füze olarak kullanılmış varsayılabilir. Füzeler de aynı oyuncular gibi tüm ekran yüksekliğinde basılabilir ve farklı farklı pozisyonlandırılabilirler. Ancak bu defa tek bir byte 4 farklı füzeyi ifade eder. Bu da demektir ki füzeleri dikey olarak hareket ettirirken bit bazlı ek hesaplamalar yapmamız gerekir. Şimdilik bu kadar detaya girmeden füzelerin yapısını incelemeye devam

Şekil 6.

Görüldüğü gibi birkaç farklı model füze elde edebiliyoruz. Dikeyde füze verilerini uzatarak daha farklı füzeler modellememiz de mümkün. Ancak bunların yerine birden fazla füzeyi yan yana kullanarak daha büyük füzeler elde etmemiz de bir başka kullanışlı yöntem olabilir. Ayrıca istersek 4 füzeyi birlikte 5. bir oyuncu olarak kullanabiliriz. Unutmamamız gereken şey her bir füzenin bağımsız bir X koordinatının olduğudur. Yani 4 füzeyi yan yana getirmek istediğimizde aşağıdaki gibi bir yöntem izlememiz gerekir.

ele temizle lda sta adc sta adc sta adc sta

şelde bayra##n# #X Koordinati FUZE3 X

(carry flag)

Burada FUZE(n) X şeklinde geçen tanımlar henüz hafıza adreslerinden bahsetmemiş olduğumuz için yapılmış geçici tanımlardır.

Oyuncular ve Füzeler'in Hafıza Haritası

Oyuncu ve füzelerin dikey genişleme özelliğine göre iki farklı hafıza yerleşimleri vardır. Eğer dikey olarak genişlemişlerse hafızada 1 kilobyte, normalde ise 2 kilobyte yer kaplarlar. Bunun nedeni ise iki kat genişlemiş yaratıkların dikeyde her iki satırda bir yeni grafik verisi okumasından dolayı yarı yarıya az veriye ihtiyaç duymasıdır. Şimdi sırayla hafıza haritalarını verelim.

1) Tek Satır Çözünürlüğü

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