1 Eylül 1986 Tarihli Commodore Gazetesi Sayfa 17

1 Eylül 1986 tarihli Commodore Gazetesi Sayfa 17
Metin içeriği (otomatik olarak oluşturulmuştur)

hangi blokta olduğu (13-15,32-63, 128-255), rengi (tanımlama sırasında C ile belirlenen), ekrandakı karakter- lere göre önceliği (0: sprite önde, | sprite arkada) ve çok renkli olup ol- madığı (0: normal, 1: çok renkli) bu komutla belirlenir. MOB ve SET ara- sında boşluk var!! Sprite'in diğer iki rengi de, CMOB b. d ile belirlenir. her parametre adıyla aynı harfle tanımlanmış olan nokta- ların rengini verir Sıra geldi onları hareket ettirmeye. Bunun için iki komutumuz var. Birin- 1 MMOB no,x1,y1,x2,y2, büyük- luk hız biçiminde kullamlıyor Belir- tilen 'no'ya sahip sprite, (x1,y1) ko- ordinatlarından (x2,y2) koordinatla- rına doğru verilen hızla ilerler. *hız' için verilecek değerler 0-255 arasında olmalı (0: hızlı, 255: yavaş). *büyük- lük” ile de, Commodore 64'ün sprite'ı değişik yönlerde büyütebilme özelli- ginden faydalanırsınız (0: normal, 1: yatay büyüme, 2: dikey büyüme, 3: hem yatay hem dikey büyüme). Diğer komut, RLOCMOB no,x,y, büyüklük, hız şeklindedir. Belirtilen sprite'1 o anda bulunduğu noktadan belirtilen koordinatlara doğru hareket ettirir. Diğer parametreler deminki gi- bidir. Peki, gösterdiğimiz bir sprite'ı ka- patmak için ne yapacağız? MOB OFF no ile her sprite'ı görünmez yapabi- lirsiniz. Bir daha belirtelim, *no”' 0-7 arasında olmalıdır. Ayrıca MOB ile OFF arasında boşluk var. Şimdi gelelim başka bir konuya... Sprite'ların birbirleriyle ve ekran ka- rakterleriyle çarpışmasının anlaşılması sorunu. Simons' Basic için bu çok ko- lay. Önce sprite-sprite çarpışmasını görelim. Aşağıdaki komuta bir bakın: DETECT 0: IF'.CHECK (nol,no2) - 0 THEN çarpışma olmuş... Yukarıdaki satırın sonunda “nol' ve 'no2' numaralı sprite'lar arasında çar- pışma olup olmadığı belirlenmekte. Şimdi de aşağıdaki satıra bir göz atın: DETECT 1: IF CHECK(no) - 0THEN çarpışma olmuş... Bu sefer de, 'no' numaralı sprite'- ın ekranla bir çarpışma geçirip geçir- mediği anlaşılmakta. Eğer yukarıda- ki komutlarda çarpışma bulunama- mışsa, cevap 0 değil | olacaktır. Sprite komutları bu kadar... —.. COONOCĞOr€ Karakter Seti Değiştirme Commodore 64'ün klavyesindeki harf, rakam ve grafik işaretlerini de- giştirebilirsiniz. Bu iş için önce MEM komutunu vermeniz gerekecek. Böy- lece bilgisayar çeşitli hafıza bölümle- rini ayarlayacaktır. Hemen arkasın- dan DESİGN komutu gelir. Bu sefer *kod' yerine 2 veya 3 kullanacağız. 2 ile normal karakterler, 3 ile de çok renkli karakterler tanımlanmaya baş- lanacağı haber verilir. Ayrıca “adres” hesaplaması da değişecek. Artık (SE000 -- ekran kodu*8) formülü ile bulunacaktır. Ekran kodları 0-255 arasıdır. Ancak bunlar sadece büyük harflere ve negatif büyük harflere kar- şılık gelirler. Bu sayılara 256 ekleye- rek küçük harflerin kodlarını da elde edebilirsiniz. Dolayısıyla *ekran kodu' yerine 0-511 arası sayılar konacaktır. - Hemen arkasından, 8 satırlık bir ta- nımlama gelecek. Burası tıpkı sprite tanımlaması gibidir. Sadece genişlik normal karakter için 8, çok renkliler içinse 4 noktadır. Tekrar eski karakter setine dönmek için NRM komutunu kullanmanız la- zım. Yapısal Kontrol Komutları Programın akışını etkileyen komut- lara yapısal kontrol komutları denir. Örneğin, GOTO, GOSUB, 1F.THEN gibi. Modern programlama dillerinde ve yeni Basic türlerinde daha başka kontrol komutları standart hale gel- miştir. Bunların çoğunluğu Simons' Basic'te de vardır. Bunlardan en basiti, CGOTO ko- mutu. Bilindiği gibi, normal GOTO komutunun arkasından sadece satır numarası gelebilir. CGOTO komutu- nun arkasına ise herhangi bir işlem koyabilirsiniz. Örneğin A — 50:CGO- TO 2*A işlemi GOTO 100 ile eşdeğer- Bıı başka ilerletme de IF..THEN komutuna getirilmiş. Öncelikle :EL- SE: komutu var. Önündeki ve arka- sındaki iki noktalara dikkat!! Bu ko- mutla I1F ve THEN arasındaki şart doğru değilse ne yapılması gerektiği belirtilebilmekte. RCOMP ile de, bir önceki IF...THEN komutunun sonu- cu kullanılarak işlemler birden fazla satıra yayılabilecektir. Çok genel bir örnek verelim: 10 1F art THEN xxxxxx 20 RCOMP: XXXXXXXXXANAXN 30 RCOMP: xxxx:ELSE:yyy 40 RCOMP: :ELSE:YYYYYYYY 50 RCOMP: :ELSE:YYYYYyYyy Yukarıdaki kullanımda, eğer şart doğru ise x'lerle belirtilen bölgedeki işlemler yapılacaktır. Şartın doğru çık- maması durumunda ise y ile gösteri- len komutlar işleme girecektir. Hepiniz FOR..TO..STEP..NEXT komutunu bilirsiniz. Buna benzer iki komut daha gelmiştir. Birincisi RE- PEAT...UNTIL komutu. Aşağıya bir bakın: 10 REPI:A T 20 XXXXXXXX 30 XXXXXXXX ÂÜ XANXANAN 50 UNTLL şart 50 numaralı satırdaki şart doğru oluncaya kadar 20-40 arası satırlar tekrarlanacaktır. Birkaç REPE- AT...UNTIL döngüsü içiçe konabilir. Buna benzer bir de, LOOP...EXIT IF...END LOOP komutu vardır. Ör- neğin: 47

Bu sayıdan diğer sayfalar: