1 Nisan 1987 Tarihli Commodore Gazetesi Sayfa 24

1 Nisan 1987 tarihli Commodore Gazetesi Sayfa 24
Metin içeriği (otomatik olarak oluşturulmuştur)

Peki bu kadar bilgiyi nasıl kullana- cağız? Sprite tanımlamamızı yaptık, kullanacağımız blokları saptadık, ge- rekli hazırlıkları yaptık ve 63 byte'lık bilgimizi saptadığımız bloklara yerleş- tirdik. Şimdi ne olacak? 11. sayımızda, sprite göstergeçlerin- den bahsetmiştik. Bunlar 2040-2047 arası adreslerde bulunmaktaydı. Ör- neğin, 15 numaralı bloka (960-1022) bir tanımlama yerleştirdiniz. Ve diye- lim ki, 2 ve 6 numaralı sprite'ların bu tanımlama ile belirttiğiniz görüntüye sahip olmasını istediniz. Yapacağınız işlem şu olacaktır:: POKE 20404-2,15 POKE 20404-6,15 Kolay, değil mi? Bu yöntemin çok güzel bir özelliği var. Diyelim ki, 14 numaralı blokta da bir tanımlama var. Siz, POKE 2040 4 2,14 dediğiniz anda sprite'ınızın gö- rüntüsü değişecektir. Böylece değişik dizaynlar arasında gidip 7 -lerek bir tür çizgi film efekti yaratabilirsiniz. SPRITE DEMO | programımızda bu özelliği kullandık. Şimdi sıra geldi sprite'ı ekrana çı- kartmaya. Bununla ilgili yazmaçın 21 numaralı yazmaç olduğunu 10. sayı- mızdan biliyoruz. Bu yazmaçın her bir bit'i, bir sprite'a karşılık gelir ve eğer bir bit'in değeri 1 ise, o sprite görü- nür durumda demektir. Örneğin 2 ve 5 numaralı sprite'lar açılacaksa, PO- KE 53248 4 21,21 2 OR 27'5 komu- tu verilmelidir. Ancak bu komutu verir vermez sprite'ı ekranda göremeyebilirsiniz. Çünkü sprite'ınız ekranın görünür kısmının dışında olabilir. Demek ki, sıra geldi sprite'ın ekrandaki pozisyo- nunu değiştirmeye. Sprite'ımızı ekranda X ve Y yönün- de belirleyeceğimiz koordinatlar ile yerleştirebiliriz. X-koordinatları için 0-511, Y-koordinatları içinse 0-255 parçası olan görünür ekranı birarada göstermekte ve görünür ekranın kö- şelerinin sprite koordinatı olarak han- gi değerlere karşılık geldiğini belirt- mektedir: bir sprite'ın 9 numaralı X-koordinatı bit'ini temsil eder. Bir örnek verelim: Diyelim ki, sprite'ımızın X-koordi- natı 345. 255'ten büyük olduğu için, 16. yazmaçın gerekli bit'i 9. sayımız- a 511 t t 'L’.' --- ! ! ! e4 343 ! ! * t ! ı Sa ! ! ! ! | ! ! ! ! ! ! ! ! ! ! | ! ! ! GÖRÜNÜR EKRAN ! | ! ! ! | ! ! ! ! ! ! ! ı ! | ! ! ! ! ! ! ı esa - ! ! ! ! ! 255 arası değerler alabilir. Ekranın görü- nen kısmının 320*200 nokta olduğu- nu düşünürsek, sprite hareket alanı- nın görünen ekrandan daha büyük ol- duğunu kolayca anlarız. Aşağıdaki çi- zim, sprite hareket alanı ve onun bir Gene 10. sayımızdaki listemizde gö- receğiniz gibi, her sprite'a ait X ve Y koordinatlarını belirleyen yazmaçlar vardır. Y-koordinatları 0-255 arasın- da olduğuna göre sorun yok. Ancak 0-511 arası X-koordinatlarını göster- mek için 1 byte— 8 bit yeterli olma- maktadır. İhtiyaç duyulan 8. bit ise, VIC'in 16 numaralı yazmaçında yeral- maktadır. Bu yazmaçın her bir bit'i, da gördüğümüz yöntemlerle yakılacak ve o sprite'a ait X-koordinatı yazma- çına 345-256 — 89 değeri konacaktır. Bir ufak noktayı daha belirtelim. Bir sprite'ı ekranda pozisyonlarken verdiğiniz koordinatlar, o sprite'ın sol üst köşesinin ekranda geleceği koor- dinattır. Dolayısıyla, sağ alt köşesinin koordinatları, X yönünde 24 nokta, Y yönünde de 21 nokta eklenerek bu- lunabilecektir. Ancak bu son hesap, normal boyutta gösterilen sprite'lar için geçerli. Normal olmayan boyut- lar da ne demek?! Şimdi sıra geldi bu özelliğe: Sprite'- ımızı genişletip daraltmaya. VIC'in 23 ve 29 numaralı yazmaçlarını kullana- rak, X ve Y yönlerinde sprite'ın ge- nişliğini normal ile iki katı arasında değiştirebiliyoruz. Daha önce gördüğümüz çokrenkli- lik, X-yönü 9. bit'i gibi özellikleri kontrol eden yazmaçlar gibi 23 ve 29 numaralı yazmaçların da yapısı, her bir bit bir sprite'ı temsil edecek şekil- dedir. Örneğin 23. yazmaçın 5. bit'i 1 ise, 5 numaralı sprite Y yönünde iki kat daha büyük görünecektir. Tıpkı

Bu sayıdan diğer sayfalar: