arasındaki adreslerdir ve O'dan 7'ye kadar olan sprite'lara işaret ederler. Eğer 960 nolu adresteki sprite O için POKE ediyorsanız o zaman: POKE 2040, 15 Doğru data pointer'larını bulmak için yukarıdaki tabloya bakın. Tab- loyu kullanmak istemiyorsanız, da- ta'nın bulunduğu adresi 64'e bölün. 960/64—15 Eğer 4 sprite'ın birbirinin aynısı olarak gözükmesini istiyorsanız, da- tayı bir kere POKE edin ve 4 sprite'- ın pointer'larını aynı yeri gösterecek şekilde ayarlayın. Aşağıdaki rutin, Ü, 1, 2 ve 3 nolu sprite'ları birbirlerinin aynısı olarak gösterir. 100 FOR I— 2040 TO 2043 110 POKET, 15 120 NEXT I RENK SEÇİMİ Sprite'ınızı belleğe yerleştirdikten sonra sıra sprite'ın ne renk olacağı- na karar vermelisiniz. Her sprite'ın başta bilgisayar tarafından belirlenen kendi rengi vardır. Eğer bunu değiş- tirmek isterseniz aşağıdaki tablodan bir renk seçin ve sprite rengi adresle- rine (55287-55294) poke edin. (Şekil - 6) Orjinal Renkler White Red Cyan Purple Green Blue Yellow Grey 2 Sprite ü ÜN—EC ÇOK-RENKLİ SPRITE'LAR Çok-renkli sprite'lar daha ileri bir teknikle meydana geliyor. Bu mod- da sprite data'sı daha farklı bir şekil- de okunmakta. Çift bit'ler olarak okunan bayt'larda her bit çiftinin bir anlamı vardır. (Şekil - 7) T 76)| B 4| (3 2| |1 0 A B C D A: Bit çifti bilgisayara, gereken rengi sprite renk sicilinden (55287'- den 55294'e kadar, üzerinde çalıştı- ğınız sprite'a bağlı) almasını söyler. B: Ekran rengi. C: Çok-renklilik sicili # O olan 53285'e POKE edilecek renk değeri. D: Çok-renklilik sicili # 1 olan 53286'nın rengi. Aşağıdaki program sprite'ı stan- dart moddan multicolor moduna çe- viriyor. (Program - 3) Sprite programlamanın öncelikler, çarpışma kontrolü gibi diğer özellik- leri de oldukça basit. Kullanımları konusunda daha fazla detayı ilgili ad- reslere geldiğimizde vereceğim. Şim- dilik öncelikler konusunda Ü'ın oto- matik olarak en öncelikli sprite ola- rak ayarlandığını ve 1'den 7'ye kadar olan sprite'ların önünden geçeceğini, diğerlerinin ise benzer bir hiyerarşi ile (1'in 2'den önünden 2'nin de 3'ün önünden geçmesi vb.) geçtiğini bilin. Ayrıca bütün sprite'lar arka planda- ki grafiğe göre önceliklidirler. Eğer herhangi bir sprite'ın önceliğini değiş- tirmek isterseniz buna uygun sprite öncelik sicilini (adres 53275) ayarla- malısınız. Çarpışma kontrolü de bundan zor değil, Sprite çarpışma sicilleri (532768- 53279) herhangi bir çarpışma duru- munda bit'leri 1 değerini alan salt okunabilir sicillerdir. Çarpışmayı kontrol etmek kolay bir olaydır, an- cak bu kontrolü kodunuzda stratejik olarak, yani asıl önemli hareket dön- güsü içinde yapmalısınız. Çarpışma- lar bir satırla belirlenebilir. Sprite - Sprite çarpışması için: IF PEEK (V- 30) ANDXTHEN (NE YAPMAK İSTİYORSANIZ) Sprite - Arkaplan çarpışması için: IF PEEK (V4- 3) ANDXTHEN... Burada X çarpışma sicilindeki bit'- in ondalık değeridir. (Şekil - 8) SPRITE* BIT DEĞER 0 0 1 1 1 2 3 2 4 3 3 B 4 4 16 5 5 2 6 6 64 7 7 128 Çok özlü biçimde bir sprite'ı nasıl yaratabileceğinizi bir algoritma ola- rak veriyorum. 1. bölümün A kısmı yazdığınız bütün programlar için ge- çerliyken kalan kısım sprite'larla il- gilidir. * ile işaretli olanlar kullanım bil- ginize ve sprite'larınızın nasıl görün- mesini istediğinize bağlıdır. Onlar ol- madan da sprite yaratıp hareket etti- rebilirsiniz. SPRITE ALGORİTMA ŞEMASI 1. PROGRAMIN DÜZENLEN- MESİ A) Programın Parametrelerini Bildir 1. Ölçüm dizileri a. tam sayı b. yazı c. gerçek 2. Değişmez ve değişkenleri ayar- lama. B) Sprite Parametrelerini Bildir 1. Değişmezleri ve değişkenleri sprite'lara uygun olarak ayarla a. VIC- &- — VlC-1I"- nin başlangıç adresi. *2. Ekranı kapat (POKE VIC * 17,11) 3, Sprite datasını sakla a. data pointerlerini ayarla (adr. 2040 - 2047) b. data'yı için 25 okumak