Commodore sayı 14, sayfa 22

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 22

2!Byte GBl!lkk..kk..!Byte 3iIByte 1Byte 41Byte İ2!kxk.. 5SiByte 15!kk.. 4k kk 10!Byte 30!4xk.. 111Byte 33!*k.. !Byte 12!Byte 4k 13!Byte 33!kk.. 15!Byte kk 16!Byte 17!Byte 18!Byte kk 13!Byte saptar. Bunu da şu şekilde gösterebi- BİT KAYNAK

74000 Saydam (ekran rengi) 001 VIC'in 37. yazmaçı

7010 VIC'in 38. yazmaçı

VIC'in 39-46 arasını yazmaçları

Bir başka özellik de, ekranda tekrenkli ve çokrenkli sprite'ların aynı anda gösterilebilmesi. Örneğin, 3 çokrenkli ve 5 tekrenkli sprite kullanma

olanağımız var. Bir sprite'ın hangi renklendirme türünde olacağını, VIC'in 28 numaralı yazmaçı saptar. Bu yazmaçın her bir bit'i bir sprite'ı temsil eder. Örneğin 0. bit 0. sprite'a, 6. bit 6. sprite'a karşılık gelir. Eğer bir sprite'a ait bit 1 değerini almışsa, o sprite çokrenkli gösterimi kullanacak demektir. Bir örnek görelim: Diyelim ki 4 numaralı sprite çokrenkli olacak. Vereceğiniz komut, POKE 53248+28,2^4 olacaktır. Veya, daha fazla sprite'ı çokrenkli

.1Byte .1Byte Hk... .1Byte Hk... 20! 231 .1Byte 23!kk.. 4k...

1 1 1 1 1 1 1 ! .!Byte 1 1 1 1

38!kk.. kk... 47! kk... SOlxk.. ka... .1Byte Mk...

Daha önceleri de gördüğümüz gibi, iki bit'in alabileceği değerler 0-3 arası değişmekteydi. İşte yanyana duran ve tablomuzda da gösterdiğimiz ikişerli bit gruplarının alacağı 0-3 arası değer, karşılık geldiği renk noktasının renginin hangi kaynaktan geleceğini yapmak isteyebilirsiniz, örneğin 1, 5 ve 7'yi. Bu durumda da POKE 53248+28, 1 OR 32 OR 128 vereceksiniz. Bir sprite yaratırken, ilk yapılacak iş 63 byte'lık bilgiyi oluşturmak ve bu bilgiyi hafızanın içinde uygun bir yere yerleştirmek. Önce 63 tane byte'ın nasıl oluşturulacağına bakalım. Kolaylık olması amacıyla, sprite'ı oluşturan 21 sıranın sadece ilkini ele alalım. Nasılsa diğerleri de aynı şekilde hesaplanıyor. Ve diyelim ki, sprite'ımızın ilk satırı, bir dolu, iki boş, bir dolu, iki boş... şeklinde olsun. Bu-

nu bir ve sıfır kullanarak gösterirsek:

100100100100100100100100100

Her bir satırımız üç byte'dan oluştuğuna göre bu-satırı üç parçaya ayıralım:

97010010010 9001001001 97000100100

Bunların her birinin onluk sistemdeki karşılıklarını da bulalım:

146 73 36

Demek ki, sprite'ımızı oluşturan 63 byte'ın ilk üçünün değerleri 146, 73 ve 36 olacaktır. Eğer yukarıda verdiğimiz satır, sprite'ımızın 15. satırı olsaydı, bulduğumuz bu değerler, sırasıyla 45, 46 ve 47 numaralı byte'ların içerikleri olacaktı (tablomuza bakınız). Çokrenkli sprite dizaynı biraz daha karmaşık. Bu sefer noktaların dolu veya boş olmasını değil de, hangi renkte olması gerektiğini bilmemiz gerekiyor. Gene diyelim ki sprite'ın ilk satırını oluşturan 12 renk noktasının sırayla, 0, 1,2,3,2,1,0,1,2,3,2, 1 renklerinden oluşmasını istiyoruz. Bu sayıların ikili sistemdeki karşılıklarını yanyana yazarak elde edeceğimiz sıfır-bir dizisi şu şekilde olacaktır:

0001101110001000110111001 Gene üçe ayıralım:

00011011 10010001 10111001

Değerlerini de hesaplayalım:

21 145 185

Demin olduğu gibi, ilk üç byte'ın veya dilediğimiz satırı oluşturan üç byte'ın alacağı değerleri bulmuş ol-

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