Commodore sayı 14, sayfa 21

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 21

Bu ayki konumuz, C64'ün en özelliklerinden biri olan sprite'lar. Geçen ayki noktasal grafik konusuna nazaran daha kolay bir konu. Genel bir tanımlama yaparsak, sprite'lar birbirlerinden ve ekranın o anda bulunduğu durumdan bağımsız olarak varolabilen ve hareket eden sınırlı büyüklükte objelerdir. Toplam

sekiz sprite kullanım imkânı vardır. Sprite'ların renkleri, büyüklükleri, birbirlerine ve ekrandaki görüntüye karşı öncelikleri ayarlanabilir ve gene birbirleri veya ekrandaki diğer şekil ve yazılarla olan çarpışmaları al-

Tuna ERTEMALP gılanabilir. Tıpkı değişik ekran modları gibi, sprite'lar da tekrenkli veya çokrenkli (multicolor) olabilir. Tüm bu işlemleri, daha önce ayrıntılı listesini verdiğimiz, C64'ün grafik işleri sorumlusu VIC'in yazmaçları ile yapabiliyoruz. Bu bölümde, ikili sistemde aritmetik kullanarak VIC'in yazmaçları ile oynayacağımız için, COMMODORE dergisinin dokuzuncu ve onuncu sayılarında çıkan COMMODORE 64 İLE GRAFİK (1) ve COMMODORE 64 İLE GRAFİK (2)

yazılarını da elinizin altında bulundurun.

Demin de belirttiğimiz gibi, sekiz sprite'ı aynı anda ekranda gösterme olanağımız var. Bunları, yazı dizimizin ikinci bölümünde de belirttiğimiz gibi, 0-7 arası sayılarla belirleyeceğiz. Bilgisayar konularında numaralamaların 1'den değil de, 0'dan başlamasına artık alışmış olmamız gerekir. Her normal sprite, ayrı ayrı yakılıp silinebilen 504 noktadan oluşur. Bu noktalar 24'er noktalık 21 sıra halinde dizilmiştir. İşte bu 24 nokta genişlik ve 21 nokta yüksekliğe sahip alanda, ekrandan bağımsız olarak şekiller yaratıp hareket ettirebilirsiniz. Her bir byte 8 bit olduğuna ve her

mmmamm bir noktayı bir bit ile gösterebildiği- 1 |! 8 1 3 1 mize göre (geçen sayıdaki grafik ek- ---------- ranındaki noktaları hatırlayın), top- 176543210! 176543210! 176543210! lam 504/8 — 63 byte'lık bir alana ihti- yacımız var. Ayrıca her sayıda 24 nok- Ol... .....!Byte ne. ta olduğunu söylemiştik. Bu da 3 byte Buka 2) ' eder. Demek ki, 63 byte'ımız, üçer 2lRute 1Bute 1 üçer gruplanmakta ve her bir grup, 4l1Byte 13!........!Byte 141........! sprite'ı oluşturan 21 grafik satırının SiByte Byte birini oluşturmaktadır. Şimdi, sprite'- BilByte 18!........ 1Byte 19!........!Byte 20!........! ımızı oluşturan byte'ları 0-62 arası sa- 221........ 1Byte ! yılarla numaralandıralım ve yandaki 8Bl!Byte 241........!Byte 25!........!Ryte 26!........ ! tablo ile deminden beri anlattıklarımı- diByte 1Byte 28!........!Byte 29!........! zı şekillendirelim... 10!Byte 30!........!Byte 321........ ! 111Byte 381........!Byte 341........1Byte Tablomuzdaki her nokta, sprite'ın 121Byte 38!........ 381........! bir noktasına karşılık geliyor. Her se- 13!Byte 3B9!... 1Byte 401........ ! kizlik nokta grubunun solunda, o 141Byte 421........ noktaları saklayan Byte'ın numarasını 15!Byte 45!........ iByte APİ. 1 görmektesiniz. Her biri üç byte'dan 16!Byte 48!........ 1 oluşan 21 satır, açıkça görülüyor. Bu za a masil sayılar 191Byte 1Byte 58!........l!Byte 59!........! ilerki kısımlarında BO!........!Byte Bi!........ 1Byte ! Gü ea ÜR Pa etmi a ve İline mea hi ler een amam, Ayrıca, her tekrenkli sprite, bilgi-

1 sayarımızın bize sunduğu 16 renkten birini alabilir. Bunun için, o sprite'a âit renk yazmaçına (VIC'in 39-46 arası yazmaçları), 0-15 arası renk kodunu POKE ile yüklemek gerekir. Artık, o sprite'ı tanımlayan byte'ların 1 durumunda bulunan bütün belirlenen renk ile gösterilecektir. Çokrenkli sprite'lara gelince... Deminden beri anlattığımız sprite'lardan farkı, aynı anda dört değişik renk taşıyabilmeleri. Bunların ikisi, o anda ekranda bulunan tüm çokrenkli sprite'lar için ortak. Üçüncüsü, sprite'ın o anda üstünde bulunduğu ekran bölgesinin sahip olduğu renk. Sonuncusu da, her sprite için ayrı ayrı olabilmekte. Tabii ki, çokrenklilik karşısında kurban edilen şey, tıpkı çokrenkli nokta grafiğinde olduğu gibi, yatay çözünürlük. 24 nokta yerine artık 12 nokta var. Ancak yanlış anlama olmasın; 24 nokta, ikişer ikişer birleşerek bir renk noktası oluşturuyor. Yoksa, 504 nokta (— 504 bit — 63 byte) kullanımı değişmiyor. Aşağıdaki tablo ile bunu kolayca görebiliriz:

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