Commodore sayı 41, sayfa 23

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 23

Yazı dizimizde bu ay, C-64'ü diğer 8-bitlik bilgisayarlardan üstün kılan en büyük özelliklerden birini; grafikleri incelemeye başlıyoruz. 64'ün ROM'undaki grafiklerle ilgili bölgeleri daha önce olduğu gibi adresler halinde ele alıp örnek programlar vermeyi sürdürürken, kullanım kılavuzundan pek fazla bahsedilmeyen kısımlara da değineceğim. Buna örnek olarak bu ayki yazıda, sprite'ları (ekranda gösterebileceğiniz hareketli şekiller) yaratma konusunda pratik bilgiler bulacaksınız. Grafiklere geçmeden önce yazı dizimizin başında verdiğimiz bayt'lar ve bit'lerle ilgili bilgilere göz atmamız yararlı olacaktır. 64'te ses ve grafik kullanımı, makinenin gücünü tam olarak kontrol edebilmek için bayt'lar hakkında biraz bilgi gerektirmekte,

- DOOF

53248 Sprite 0 X konumu 53249 Sprite 0 Y konumu 53250 Sprite 1 X konumu 53251 Sprite | Y konumu 53252 Sprite 2 X konumu $3253 Sprite 2 Y konumu 53254 Sprite 3 X konumu 53255 Sprite 3 Y konumu 53256 Sprite 4 X konumu 53257 Sprite 4 Y konumu 53258 Sprite 5 X konumu 53259 Sprite 5 Y konumu 53260 Sprite 6 X konumu 53261 Sprite 6 Y konumu 53262 Sprite 7 X konumu 53263 Sprite 7 Y konumu Bunlar sprite kullanımında çok önemli adresler. Bu adreslerin değer- lerini değiştirerek bir FOR-NEXT döngüsüyle ekranda sekiz adet spri-

te gösterebilirsiniz. Sprite'ların X konumu ekranda soldan sağa, Y konumu ise yukarıdan aşağıya hareketi ifade ediyor. Sprite tanımlarken, 0'ıncı sprite'ın adresini bir değişken olarak saklamak ve diğer adreslere bu değişkene belli sayılar ekleyerek ulaşmak çok sık kullanılan bir yoldur. Örneğin ilk adresi V değişkeni olarak saklarsanız (V = 53248) 7. sprite'ı hareket ettirmek için 53262 ve 53263 yerine V+14 ve V+15 yazabilirsiniz. Aşağıdaki program düz bir sprite yaratıyor. Yukarıda söylediğim gibi 53248'i 140. satırda olduğu gibi V'ye eşitlediğimizde sprite'ın diğer özelliklerine ulaşmak daha kolay oluyor. Adreslerin kendisi yerine değişken adları kullanmanın programınızı hızlandıracağını da unutmayın. (Program -1)

Can ÖZTÜRK

Bir sprite'ın ekrandaki konumu, genişletilmemiş bir sprite oluşturan 24x21 noktalık bölgenin sol üst köşesine göre hesaplanır. Eğer sadece bir noktayı sprite olarak kullanacak olsanız bile bu noktayı ekranın ortasında göstermek için konumu sol üst noktada başlıyormuş gibi hesaplamak zorundasınız.

DO10 53264 (V 416)

0'dan 7'ye sprite'ların 256'yı geçen X pozisyonu.

Sprite'ı yatay olarak konumlandırmak biraz karmaşıktır. Her ne kadar sprite'ınızı hareket ettirmek için yatay olarak 320 pixellik bir çözünürlüğe sahip olsanız da eğer soldan 256'ıncı pixeli geçerse (ekranın soldan sağa genişliğinin 4/5'i kadar) sprite'ın konumunu belirtmek için dokuzuncu bir bite ihtiyaç duyarsınız, çünkü bir bayt sadece 255'e kadar olan sayıları açıklayabilir. Sprite'lardan biri 256 nokta sınırını geçtiğinde, bu adresteki uygun bit açılmalı, geri dönüşte de kapatılmalıdır. Örneğin sprite 0 sağa doğru bu sınırı geçiyorsa:

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