İN GRAFİK DONANIMI-7
C-64'ün ilginç özelliklerinden biri olan Sprite'lar, yazı ya da grafik modunda ekranın içeriğinden serbest olarak hareket edebilen bağımsız grafik oluşumlarıdır.
SPRİTE'LAR
Commodore 64'ünüzün en ilginç özelliklerinden biri de tabii ki Sprite'lardır. Sprite'lar, yazı ya da grafik modunda ekranın içeriğinden veyahut diğer Sprite'lardan serbest olarak hareket edebilen bağımsız grafik oluşumlardır. Aynı anda ekran üzerinde sekiz Sprite kullanılabilir. Sprite'ların renkleri, büyüklükleri ve birbirleri ya da arka zemin karakterleri üzerindeki öncelikleri değiştirilebilir. İki Sprite'ın ya da Sprite ile arka zemin çarpışması otomatik olarak kontrol edilir. Ayrıca her Sprite için iki Sprite modundan birini seçebilirsiniz: — normal — çok renkli. Bütün bu fonksiyonlar, VIC (Video Interface Chip 6567) ve onun kütükleri sayesinde kolayca kavranabilir. İlk olarak Sprite'ın yapılışı ile meşgul olmalıyız. Daha önce binary (ikilik sistem) aritmetiği ve çeşitli kütüklerin kullanılışını göstermiştik ve bunlar ileriki bölümlerde konuyu daha iyi kavramamıza yardımcı olacaktır. Daha önceden belirtildiği gibi ekranda aynı zamanda toplam sekiz değişik Sprite oluşturabilirsiniz. Her Sprite kendine özgü (0-7) bir numara ile tayin edilir.
Normal Sprite'ların düzenlenmesi ve rengi: Her normal Sprite teker teker ayarlanan 504 noktadan oluşmaktadır. 24x21 noktalık bir matris kullanılmaktadır. Bu nedenle bir Sprite 24 nokta genişliğinde ve 21 nokta yüksekliğindedir. Bu matris dahilinde figür ve grafik varyasyonları yaratabilirsiniz. Sprite'ların tanımlanmasını kolaylaştırmak için 504/8 = 63 byte'lık kı-
Serdar Giden sımlara ayrılır. Her nokta bir bit ihtiva eder ve bir byte 8 bit'ten oluşur. Her Sprite 24 noktalık bir genişliğe sahip olduğu için bu durumda 3 sütun oluşur. Bu da ilk üç byte'ın Sprite'ın ilk 24 noktasını ihtiva ettiği demektir. Sütunların kalanları aynı şekilde tanımlanmıştır. Her ardarda gelen üç byte noktaların bir sırasını oluşturur. Bundan sonraki sıra bir sonraki byte ile başlar. Bunu aşağıdaki tablo ile açıklayabiliriz:
Bit Sırası Sütun 0 Byte 0 76543210 1 Byte 3 2 Byte 6
| 20 Byte 60 |
Sütun 1 | Sütun 2
76543210
76543210
Kanal No Bit Kodu Renk Deposu 0 00 Saydam 1 01 Çok renk kütüğü 0 (VIC küt.-37) 2 10 Çok renk kütüğü 1 (VIC küt.-38) 3 11 Sprite renk kütüğü (Küt. 39-46)
Eğer bir Sprite tanımlamak istiyorsanız, byte'ları sütun ve sıralara doğrulukla girmelisiniz. Bunun BASIC'te nasıl yapılacağını ileride göstereceğiz. Sekiz Sprite'ın her biri mümkün olan 16 renkten biri ile gösterilebilir. Bütün dolu noktaların rengi ilgili Sprite renk kütüğünde (VIC kütükleri 39-46) alınır. 5. Sprite'ı beyaz renkle göstermek için VIC kütüğü 39+5 = 44'e (Hafıza adresi $D02C = $53292) 1 değeri (beyaz için) konulur. Bütün boş noktalar saydamdır yani bu noktaların altında bulunan renk görünür. Çok renkli Sprite'ların tanımlanması ve rengi:
Bütün Sprite'lar 24 x 21 nokta düzenine sahip değildir. Çok renkli Sprite'lar çok renkli grafikler gibi düzenlenmiştir. Bu nedenle “X” eksenindeki çözünürlükleri normal Sprite'ların yarısına eşittir. Her sırada 12 çift genişlikli nokta vardır. Yüksek çözünürlüklü Sprite'lar tek renkli iken çok renkli Sprite'lar arka zemin rengi dahil olmak üzere 4 değişik renkten oluşturulabilir. 12x21 çift genişlikli noktanın rengini belirtmek için 0-3 (yüzde 00 - yüzde 11) değerlerini alan ve renk kanalını belirten iki bit kullanılır. VIC noktanın rengini bu kanaldan alır. Özel bit kodlarına ayrılan kanallar yukarıdaki tabloda gösterilmiştir.
Sütun O Sütun 1 Sütun 2 Bit Sırası 76543210 76543210 76543210 O| Byte — ——— 1| Byte 3 — — m SERE 2) —— a 20| Byte — — — — ———— mim
Görüldüğü üzere, her Sprite için bir renk kütüğü olduğu için sadece 3. renk kanalı her Sprite için farklı olur. Diğer renkler (renk 1 ve 2 ek olarak arka zemin rengi) bütün Sprite'lar için aynı kütükten alınır. (CBM User's Guide'ın aksine, çok renkli Sprite modunda 16 rengin hepsi kullanılabilir.) Bir Sprite'ı ekranda çok renk modunda gösterebilmek için VIC'e onu bu şekilde göstermesi için emir vermeniz gerekir. 8 bit'in her birinin 8 Sprite'ın birine ayrıldığı 28. kütük (VIC) bu iş için kullanılır. Eğer buradaki bit dolu ise ilgili Sprite çok renkli Sprite olarak gösterilir. Bu bit düzenlemesi aşağıdaki gibidir:
: b7 b6 b5 b4 b3 b2 bi bü 28 6432168421 7 56 55 54 53 52 51 S0
Örnek olarak Sprite 4'ü çok renkli Sprite olarak kullanmak için VIC'in 28. kütüğünün 4 numaralı bit'ini ayarlamak gerekir. Eğer BASIC kullanıyorsanız, aşağıdaki gibi yapılır: POKE 53248+28, 16. Eğer bir çok Sprite'ı bu şekilde göstermek isterseniz, (örneğin Sprite 1, 5 ve 7) bilgisayara aşağıdakileri girin: POKE 53248+28, 1 OR 32 OR 128 ya da POKE 53248+28, 161. Çok renkli Sprite'ların düzenlenmesi yandaki gibidir.
THE ALPHABET GROUP 1989 Market Share