Sprite Basic
Retro bilgisayarBütün C-64 kullanıcılarına merhaba. Hepinizin bildiği gibi spritelar C-64'ün ilginç bir özelliğidir. Fakat spritelarla ilgili BASIC komutların olmaması büyük bir dezavantajdır. Simons' BASIC gibi geliştirici diller sprite kullanımını kolaylaştırmaktadır, ama bu tür bir programa sahip olmayan kullanıcılar için bu program yardımcı olabilir.
Program hakkında birkaç açıklayıcı bilgiden sonra komutların açıklamasına geçelim. Program çalıştırıldığında $C000-$C986 adresleri arasına transfer edilir.
Bu program yardımıyla eklenen komutları kullanabilmek için hafızada programın bulunması gerekir. Önce bu komutları kullanan bir program yazıp sonra da makine dili programı yüklerseniz komutlar tanınmayacaktır. Yani önce makine dili programı yükleyip ondan sonra yeni programınızı yazmanız gereklidir.
Makine dili programı yüklemeden önce bilgisayarınızı kapatıp açın veya SYS64738 ile reset'leyin. Çünkü hafızada başka programlar olabilir.
MOVSPR komutunda X değeri 65535'i Y değeri de 255'i geçmemelidir. Şimdi de komutların açıklamalarına geçelim. Burada açıklanan dört komutun yardımıyla basit BASIC komutları ile spriteları hareket ettirebilir hatta animate ettirebilirsiniz:
-SPRITE S#(1-8), açık/kapalı (1/0), renk (1-16), öncelik (0/1), yp (0/1), mod (1/2).
Bu komut BASIC 2.0'daki sekiz spritetan birini seçmenizi sağlar. Sonraki parametre spritein açılıp kapatılmasını sağlar. Üçüncü parametre de renk seçmenizi sağlar: 1 siyah, 16 açık gri.
Öncelik tanımı için dördüncü parametre kullanılır. Bu değer değiştirilerek sprite'ın önde mi arkada mı olacağı belirtilir. Ayrıca XP ve YP değerlerine 1 koyarak sprite'ı yatay ve düşey olarak genişletebilirsiniz. Son olarak sprite'ın çözünürlüğü belirtilir. Mod 0 ise sprite normal 1 ise çok renkli görüntüdür.
-SPRCOLOR ÇR1 (1,16), ÇR2 (1,16)
Programda kullandığınız spriteler çok renkli ise bunların renklerini ayarlamanızı sağlar. ÇR1 birinci ÇR2'de ikinci rengi ayarlar.
-MOVSPR S# (1,8), X1, Y1 [,X2,Y2, hız (1,8)]
Bu komut ile spriteları yerleştirmek ve hareket vermek mümkündür. Bu komutun iki kullanımı vardır. Eğer tek bir sprite'ı yerleştireceksenizse sadece ilk üç değişkeni kullanırsınız ve S# sprite numarasını belirtir. X1 ve Y1 ise sprite'ın ilk pozisyonunu belirtir. Eğer animasyon yapılmayacaksa X2, Y2 ve hız değişkenlerinin kullanılmasına gerek yoktur. Eğer animasyon yapılacaksa bu son değişkenlerin de kullanılması gereklidir.
-COLLISION türü (1/2), satır#
Programlarınız sırasında çarpışmaları kontrol etmek için bu komutu kullanmalısınız. Programınızın içinde bu komutu ana döngü içinde ve tek satırda kullanın. Bu çarpışma tiplerinden birincisi iki sprite'ın çakışmasını, ikincisi ise sprite
ile arka plan grafiklerinin çakışmasını kontrol eder. Satır# ile çakışma halinde gidilecek alt yordamın ile satırı COLLISION komutu olmalıdır. Yani COLLISION 1 veya COLLISION 2 ama bundan sonra satır numarası verilmemelidir. Yoksa çakışma kontrolu yapılmaz. Alt yordamda yapılması gerekenler bittiğinde RETURN ile ana programa dönülebilir. Böyle bir alt yordamda COLLISION komutunu kesinlikle kullanmayınız.
COMMODORE 64 İLE PROGRAM YAZIYOR MUSUNUZ?
Eğer yazıyorsanız ve bu programları değerlendirme, bildiklerinizi diğer Commodore'cularla paylaşmak ve biraz da ek gelir sağlamak istiyorsanız, YAYINLANAN HER PROGRAMINIZA 30.000 TL. ödüyoruz!!!
Yapmanız gereken, programlarınızı bir diskete ya da kasete (turbosuz) kaydederek programınızın tam açıklaması ve adresinizle COMMODORE DERGİSİ PROGRAM DÖKÜM EKİ SAKIZ SOK. BERKEL APT. NO: 6/4 - 81300 KADIKÖY İSTANBUL adresine poastalamak.
Eğer programınız sonraki sayılardan birinde yayınlanırsa, programınızın telif ücreti olan 30.000 TL.'yi size ileteceğiz.
⇨Programlar normal Basic dili ile, Simons' Basic ile ya da Makina Dili ile yazılmış olabilir. Eğer programınız Simons' Basic ile yazılmış ise bunu lütfen açıklamalarınızda belirtiniz. Makina Dili ile yazılan programlarınızın başlangıç ve bitiş adreslerini ve de çalışma adreslerini açıklamalarınızda belirtiniz.
⇨Programlarınızın ihtiyacı olan diğer birimleri de belirtmeyi unutmayınız. Programınızın bir dataset'e (teyp), disk sürücüsüne ya da joystick'e (veya her hangi başka bir birime) ihtiyacı varsa açıklamanızda belirtiniz.
⇨Programınızı anlatırken, kolayca anlaşılabilecek şekilde yazınız. Unutmayın ki bu programları yazacak olan arkadaşlarınızın arasında çok yeni Commodore'cular da bulunacaktır.
Şimdiden hepinize iyi çalışmalar diliyoruz ve programlarınızı bekliyoruz.