Bu sayfadaki yazılar
Sayfanın metni
Sayfa 27
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 26
meniz gereken şey iki baytlık tabloları low (alçak) bayt tablosu ve high (yüksek) bayt tablosu olarak ikiye ayır- mam ve böylece elemanlara erişimi kolaylaştırmam. Lda $C300,Y Beg Atla Lda $COEO,Y Ora Sta $DO10 Şimdi de sıra high baytlarda. Tabii ki sıfır olan high baytlarla işimiz yok. Eğer başta tüm 9. bitleri sıfırlama- saydık şimdi x koordinatlarının high baytları sıfır olan sprite'ların 9. bitlerini de temizlememiz gerekecekti. Eğer high baytlar sıfır değilse o zaman o koordinata sahip olan sprite'ın 9. bitini bir yapmamız gerekiyor. Bu işlemi yaparken de hızdan kazanmak için bir hile yapıyor ve bu değerleri $COEO adresinden başlayan $10 bir tabloya yerleştiriyoruz. Böylece Y regis- teri üzerinden indeksli okuma ile $DO10 adresinin ka- çıncı bitini 1 yapacağımızı öğreniyoruz. Atla İny Txa Ade $COFC Tax İkinci sprite için gerekli x tablosu pointeri ayarlama- sını yapıyoruz. Yani X registeri değerini SCOFC adre- sindeki değer kadar artırıyoruz. Y registerini iki artırın- ca da işlem yaptığımız sprite'ın bir sonrakinin x koor- dinatının değiştirilmesini sağlıyoruz. Cpy# Bne Döngü2
sekiz sprite için bu işlemleri tekrarlıyoruz. Lda $COFE Cic Ade $COFA Sta $COFE gelecek interrupt için x tablosunun pointerini istenen miktarda artırıyoruz. Ve JMP $EABS1 komutuyla interrupt'ı terkediyoruz. Programın kullandığı bazı adreslere koyacağınız değerlerle ekrandaki hareketi olduğu gibi değiştire- bilirsiniz. Bu adresler: COFA (X hızı): Her interrupt girişinde X koordinatı gös- tericisinin artış miktarı. Bu değeri ne kadar artırırsanız sprite'larınız x ekseninde o kadar hızlı hareket ediyor gibi görünecektir. COPB (Y hızı): Sprite'ların sinüs hareketi üzerindeki hız- larını ayarlar. Güzel.bir görüntü için X hızına yakın (bir veya iki eksiği iyi oluyor) bir değer seçin. COFC (X takibi): İki serite'in x koordinatı tablosu de- ğerleri arasındaki iark. Bu değeri artırdıkça sprite'lar x ekseni üzerinde birbirlerinden uzaklaşırlar. COFD (Y takibi): İki sprite'ın y koordinatı tablosu (si- nüs tablosu) değerleri arasındaki fark. Bu değer art- tıkça sprite'lar y ekseninde birbirinden uzaklaşır. Eğer COFC ve COFD adreslerine sıfır değeri verirseniz ek- randa sadece tek bir sprite görürsünüz. Yani tüm spri- te'lar üst üste görünürler. Bu program hakkında tüm anlatabileceklerim bu kadar. Bundan sonrasını sizin deneyerek ve inceleye- rek öğrenmeniz gerekiyor. Tabii bunun için önce dö- küm ekindeki programı yazmanız şart. Gelecek aya kadar hoşçakalın.