Bu sayfadaki yazılar
Sayfanın metni
Sayfa 11
7- SPRCOL sprnum, renk : Sprite’ların rengini bu komutla değiştirebilirsiniz. 8- SPRIOR sprnum, öncelik : Bu komut ile sprite’ların normal yazı karakterlerinin önünde mi yoksa arkasında mı gözükeceğini belirleyebilirsiniz. 9- SPRALL açık/kapalı : Bu komut ise bütün sprite’ları açabilir veya kapatabilirsiniz. Bu komuttan önce bütün sprite’ların x ve y koordinatları, göstergeçleri vs. girilmiş olması gerekmektedir. 10- CURSOR satır, sütun : Bu komut ile artık PRINT komutuyla yazıyı ekranda istediğiniz yere rahatça yazdırabileceksiniz. Şimdide gelelim komutlardaki parametrelerin aldıkları değerlere... SPRNUM : Sprite numarası demektir ve 0...7 arasında olması gerekmektedir. 8 ve yukarısı değerler hata verir. AÇIK / KAPALI : Bu parametre ile ilgili özelliğin açık veya kapalı olması seçilir. 0: Kapalı, 1: Açık demektir. 2 ve yukarısı değerler hata verir.
X-KOOR : Sprite’ın ekrandaki pozisyonunun X koordinat değeridir. 0...65535 arasında bir değer alabilir. 65536 ve yukarısı değerler hata verir. 255’ten büyük X koordinatları için Extra X-koordinat biti otomatik olarak ayarlanır. Bu durumda bir sprite’ın alabileceği X-koordinat değeri en fazla 511 olabilir. Bir sprite’ın ekranda tam olarak görüntülenebileceği minimum X-koordinat değeri 24’tür. Eğer sprite X ekseninde genişletilmemiş ise ekranda tam olarak görüntülenebileceği maksimum X koordinat değeri ise 320’dir. 320’den itibaren sprite görüntüden çıkmaya başlar. Eğer OPEN SIDE BORDER demo tekniğini kullanırsanız 320’den sonraki koordinatlarda da sprite görünüyor olacaktır. Y-KOOR : Sprite’ın ekrandaki pozisyonunun Y koordinat değeridir. 0...255 arasında olmalıdır. 256 ve yukarısı değerler hata verir. Normalde bir sprite’ın ekranda tam olarak görüntülenebileceği minimum Y koordinat değeri 50’dir. GÖSTERGEÇ : Bir sprite’ın şekil datalarının tutulduğu bellek adresleri göstergeç ile VIC’e bildirilir. 0...255 arasında olmalıdır. 256 ve yukarısı değerler hata verir. GÖSTERGEÇ * 64 = ŞEKİL DATA ADRESİDİR. Bu komut sadece VICBANK 0’da ve EKRAN BELLEĞİNİN YERİ DEĞİŞMEDİYSE geçerlidir. İsteyen source code’a VIC bank ve ekran belleği adres kontrolü ekleyebilir. X-GENİŞLETME, Y-GENİŞLETME : Sprite’ın X ve/veya Y eksenlerinde 2 kat büyümesini kontrol edebilirsiniz. 0: Genişleme yok, 1: Genişleme var demektir. 2 ve yukarısı değerler hata verir. RENK, RENK1, RENK2 : 0...255 arasında olmalıdır. 256 ve yukarısı değerler hata verir. İlk 0...15 arası renk değerleri her 16 sayıda tekrar eder. Yani herhangi bir renk değerine 16 eklerseniz yine aynı rengi elde edersiniz. ÖNCELİK : Bu parametre ile bir sprite’ın ekrandaki bir karakterin önünde veya arkasında olmasını sağlayabilirsiniz. 0 ise sprite önde, 1 ise arkada gözükecektir. 2 ve yukarısı değerler hata verir. SATIR, SÜTUN : Kursörün ekranda gözükeceği satır ve sütun değerini bildirmeye yarar. Satır değeri 0...24, sütun değeri 0...39 arasında olmalıdır. Satır için 25 ve yukarısı, sütun için 40 ve yukarısı değerler hata verir. Yukarıdaki açıklamalardan sonra C64’te sprite kullanmak artık çok basit olacaktır. Daha önce bir “sprite editör” ile sprite’larınızı hazırlayın. Sonra sprite komutlarıyla denemeler yapın. Bir gecikme rutini (işte size bir BASIC komutu daha : DELAY süre ile gecikme yaptırabiliriz.) SPRPNT komutuyla bir sprite’ın datalarının alınacağı adresi değiştirirseniz basit bir animasyon yapmış olursunuz. Programın assembler listesinin sonunda iki adet BASIC program listesi göreceksiniz. Birincisi C64’ün POKE komutlarıyla sprite hareket ettirirken ikincisinde bu iş için yeni komutları kullanacağız. Bu arada bazı temel BASIC komutlarını bildiğinizi varsayıyorum. Mesela PRINT, FOR-NEXT vs..
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 10
NEREDEN : İSTANBUL NİCK / GRUP(LAR) : HADES / HI3S WEB SİTE : WWW.HI3S.ORG HTTP://HADES6510.SITEMYNET.COM
(C64ASM V1.1 ile compile edilecek şekilde yazılmıştır.) Herkese tekrar merhaba. Geçen sayımızda C64’ün yetersiz olan BASIC komutlarına yeni komutların nasıl eklendiğini görmüş ve 4 tane de yeni komut eklemiştik. Bu sayımızda da C64’e işe yarar birkaç komut daha ekliyoruz. Yeni komutlarımızın 9 tanesi sprite ile ilgili, 1 tanesi ise kursörü ekranda istediğiniz yere yerleştirmenizi sağlayan “CURSOR” komutu. Bildiğiniz gibi “SPRITE” C64’ün yazı ve grafiklerinden bağımsız olan, programlanabilen ve çeşitli özellikleri olan hardware tabanlı grafik elemanlarıdır. Oyunlarda yönettiğiniz kahramanlar, araçlar, düşmanlar, hareketli şekiller hep sprite’tır. C64’ün oyun bolluğu bu sprite’ların sayesindedir. Buraya kadar her şey güzel ama C64’ün “her güzelin bir kusuru vardır” sözünü doğrulayan bir kusuru vardır. Gerek sprite, gerek ses olsun C64’ün bu özelliklerini kullanabilmenizi sağlayan hiçbir komutu yoktur. Ekranda bir sprite gösterebilmek için en az 4 tane POKE komutu kullanmanız gerekmektedir. Yeni komutlarımız sizleri POKE komutu yazmaktan kurtaracaktır. Komutların kullanımı çok basittir. Aslında komutlar bu kadar fazla değildi. Bazı komutların parametreleri opsiyonel durumdaydı, yani kullanma zorunluluğu yoktu. Bu parametrelerin ayrı bir komut altında kullanılabilmesi için değişiklik yaptım. Sprite komutlarımızın neler olduğuna geçmeden önce biraz da “CURSOR” komutundan bahsedelim. C64’ün BASIC komutları arasında maalesef kursörle ilgili bir komut bulunmamaktadır. Ekranın herhangi bir yerine bir şeyler yazmak istediğinizde tırnak işaretleri arasında bol miktarda –kursör aşağı ve kursör sağa– karakterlerini kullanmanız gerekmektedir. Yeni komut ile bunların hiçbirisine gerek kalmayacak. Mesela CURSOR 10,20:PRINT “C64 TURKIYE” ile 10. satır 20. sütundan itibaren “C64 TURKIYE” yazısını yazmış oluyorsunuz. Konuyu daha fazla dağıtmadan SPRITE komutlarımızı açıklayalım. 1- SPRITE sprnum, açık/kapalı : Bu komut ile istediğiniz sprite’ı açıp kapatabilirsiniz. Sprite’ın ekranda gözükmesi için koordinatlarının uygun sınırlar arasında olması gereklidir. Mesela 24,20 (x,y) koordinatlarında bulunan bir sprite gösterilmeyecektir. (Laf aramızda eğer BORDER’leri ortadan kaldırırsa alt ve üst Y koordinatı sorun olmaz ☺ ) 2- SPRPOS sprnum, x-koor, y-koor : Yukarıda bahsettiğimiz koordinatları bu komutla girebilirsiniz. Bir sprite’ın ekranda tam olarak gözükeceği ilk koordinatlar x=24 y=50’dir. 3- SPRPNT sprnum, göstergeç : Sprite’ın şekil datalarının alınacağı hafıza adresini VIC’e bildirmek için kullanılır. Bu komut default pointer adresleri olan $07F8-$07FF arasını kullanır. Eğer VIC BANK ve/veya ekran belleğinin yeri değiştirilmişse sprite’ın şekli bozuk olacaktır. Aslında VIC BANK ve ekran belleği kontrolü yapan ve adresleri ayarlayan bir rutin programa eklenebilir. 4- SPREXP sprnum, x-genişletme, y-genişletme : Bu komut ile sprite’ınızın X ve Y eksenlerinde 2 kat genişleme özelliğini ayarlayabilirsiniz. 5- SPRMUL sprnum, açık/kapalı : Hangi sprite’ın multicolor modda görüneceğini bu komut ile ayarlayabilirsiniz. 6- SPRMCL renk1, renk2 : Bu komutla multicolor sprite renklerini girebilirsiniz.