Bu sayfadaki yazılar
Sayfanın metni
Sayfa 60
Dizi 4 sayı sürecek. Birinci bölümde, yani bu bölümde, grafik komutlarını inceleyeceğiz. İkinci bölümü, müzik, sprite, karakter seti ve BASIC ile PASCAL arasındaki farkları ortadan kaldıran yapısal komutlara ayırdık. Üçüncü bölümde, özellikle programcıların çok işine yarayan yardımcı komutları ve matematiksel komutları söz konusu edeceğiz. Ve nihayet son bölümümüzün, ki en uzun bölüm olacak, konusu yazı ekranı, veri giriş çıkışı, yazı dizilerinin (string) kullanımı, hatalara (error) karşı önlemler ve COMMODORE 64 yan birimlerinin kullanılması olacak. Gerçi birinci sayımızda uzun uzun anlatmıştık, ama o sayımızı bulamayanlar için SIMON'S BASIC'in ne olduğunu kısaca anlatalım. Bu program, gerek kartuşta, gerek kasette, gerekse de diskette alabileceğiniz bir BASIC ilerleme programı. Yani, COMMODORE 64'ün kendi BASIC'i içinde olmayan bazı komutların kullanılmasını sağlayan bir program. Beraberinde getirdiği ve bizim tek tek inceleyeceğimiz 100'den fazla komut ile yukarıda da bahsettiğimiz grafik, ses vs. alanlarında programlar yazmak artık daha kolay ve hızlı hale geliyor. Ancak bazı okuyucularımızın düştüğü hataya lütfen siz de düşmeyin; SIMON'S BASIC'in emirleri kullanılarak yazılan programlar muhakkak SIMON'S BASIC'e gereksinim duyarlar. Bu programı bilgisayara yükleyip çalıştırmadan, bizim yayınladığımız ve SIMON'S BASIC kullanan programları yazmanızın hiçbir anlamı yok. Hatta kendi bilgisayarlarınızda SIMON'S BASIC kullanmadan yazmanız, sonra da arkadaşınızın bilgisayarında SIMON'S BASIC ile çalıştırmanız bile mümkün değil; daha yazma aşamasında bile bu programa ihtiyacınız var... Şimdi gelelim grafik emirlerine. Bildiğiniz gibi COMMODORE 64'ün iki tür ekranı var: Grafik ekranı ve yazı ekranı. Bu sayımızda grafik ekranına hükmeden komutları inceleyeceğiz. Yazı ekranı ile ilgili programlar son bölümümüzün konusu. Aşağıda açıkladığımız grafik komutlarının kullanım biçimlerini verirken, gönderilmesi gereken parametreler arasında MOD yazısını göreceksiniz. Öncelikle bunun ne olduğunu bilmeniz gerekiyor. Daha önceden de duymuş olabileceğiniz gibi, COMMODORE 64'ün iki tür grafik çözünürlüğü var. Biri az renkli 320 x 200, biri de çok renkli 160 x 200 çözünürlük. Bunlardan ilkini normal, ikincisini çok renkli olarak isimlendirmek mümkün. İşte MOD parametresi, çizimi yapan komutun ekrandaki etkisini bu iki tür ekrana göre belirleyecektir. Önce normal ekrandaki etkisini görelim. Eğer komutu kullanırken MOD yazan yere sıfır koyarsanız, komutun etkilediği alan silinir. Örneğin çizgi çizen bir komut ise, çizginin geçtiği yer silinir. Eğer MOD yerine 1 koyarsanız, bu kez normal çizim yapılacaktır. 2'nin anlamı, etkilediğin alanda nokta olan yerleri sil, olmayan yerlere de koy. Böylece etkilenen alanın negatifi çıkarılmış olur. Çok renkli ekranda, sıfırın anlamı aynıdır; geçtiği yeri siler. 1 ile çizim yapılan bölge 1 numaralı renge, 2 ile 2 numaralı renge, 3 ile de 3 numaralı renge boyanır. 4 numara, bir tür negatifleştirme özelliğine sahiptir. O numaralı rengi 3 numaralı renge, 1 numaralı rengi de 2 numaralı renge çevirir veya bunların tersini (3'ü 2'yi yapar). Eğer normal ekranda iseniz, kullanacağınız grafik komutlarının X koordinatları 0-319 arasında, Y koordinatları da 0-199 arasında olacaktır. Eğer çok renkli ekran kullanıyorsanız, bu sefer X koordinatları 0-159 arasında olacaktır. Y koordinatları aynen kalır. Şimdi gelelim komutlara. Öncelikle grafik ekranına nasıl geçeceğimizi görelim: HIRES a,b ile normal grafik ekranına geçilir. Burada 'a' ile çizgi rengini, 'b' ile de ekran rengini belirlemektesiniz. Bunlar 0-15 arası sayılar olmalı. Ayrıca bu komut, daha önceden var olabilecek bir grafik ekranını da silecektir. HIRES komutunu kullandıktan sonra MULTI a,b,c komutu da kullanılırsa, bilgisayar çok renkli grafik ekranına geçecektir. Bu durumda 'a', 'b', 'c' ile çizimde kullanılacak üç renk belirtilmektedir. Bu komuttan sonra gelen tüm grafik komutlarının X koordinat değerleri 0-159 arasında olmalıdır. Peki, yazı ekranına nasıl geri döneceğiz? Bu işlem için de CSET komutu var. CSET 0 ile her zaman için büyük harf kullanılan duruma geçebilirsiniz. CSET 1 ile de büyük/küçük harf kullanımı başlar. CSET 2'nin ise değişik bir kullanımı var. Tıpkı HI-
RES komutu gibi grafik ekranına geçer, ama bu kez grafik ekranı silinmez. Renk olarak eski renkler korunur. Eğer daha önceden çok renkli grafik kullanmışsanız, CSET 2'den sonra MULTI a,b,c komutunu kullanmalısınız.
Bir de renkleri çizim sırasında değiştirme sorunu var. Öyle ya, HIRES'i kullansak ekran silinecek. Bunun için de LOW COL a,b,c komutu var. 'a', 'b', 'c' ile kullanılan her üç renk de değiştirilir. Eğer normal ekranda iseniz, 'b' ve 'c'nin bir anlamı kalmayacaktır. Dikkat etmeniz gereken nokta, LOW ve COL kelimeleri arasında boşluk olduğu. Tekrar, grafik ekranını açarken HIRES veya MULTI ile tanımladığınız renklere dönmek isterseniz, HI COL emrini kullanmalısınız. Burada da HI ve COL arasında boşluk var. Artık çizim için kullanacağımız komutlara geçebiliriz. Öncelikle nasıl nokta koyacağımızı görelim. PLOT x, y, mod ile belirttiğimiz X ve Y koordinatları geçerli olan mod'a göre etkilenir. Eğer mod 1 ise o koordinata nokta konacaktır. Diğer durumları zaten biliyorsunuz. LINE x1, y1, x2, y2, mod ile de, belirtilen (x1,y1) ve (x2,y2) koordinatları arasında, mod'a göre çizgi çekilecektir. Bir diğer önemli geometrik şekil olan daireyi çizmek için, CIRCLE mx, my, xr, yr, mod komutunu kullanmalısınız. Burada 'mx' ve 'my' ile dairenin (daha doğrusu elipsin) merkezinin koordinatlarını belirliyorsunuz. 'xr' ve 'yr' ise, elipsin X ve Y doğrultusundaki yarıçaplarını gösterecektir. Eğer 'xr' ve 'yr' eşitse, sonuç daire olacaktır. Hazır söz daireden açılmışken, biraz da bununla ilgili diğer komutları tartışalım. Örneğin, ANGL komutu. Bu komut ile bir elipsi çizmeden, onun belli bir açıdan çıkan yarıçapını çizmeniz mümkün olacaktır. Komutun veriş biçimi, ANGL mx, my, açı, xr, yr, mod şeklinde olacaktır. 'mx', 'my', tıpkı CIRCLE'da olduğu gibi. 'açı' ile de çizilecek yarıçapın açısı belli edilmekte. Burada, saat 12 pozisyonu 0 dereceyi, saat 3 pozisyonu 90 dereceyi, saat 6 pozisyonu 180 dereceyi ve saat 9 da 270 dereceyi belirtecektir.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 61
K mod şeklinde olacaktır. 'mx', 'my', 'xr' ve 'yr' tıpkı CIRCLE'da olduğu gibi. 'açı' ile de çizilecek yarıçapın açısı belli edilmekte. Burada, saat 12 pozisyonu 0 dereceyi, saat 3 pozisyonu 90 dereceyi, saat 6 pozisyonu 180 dereceyi ve saat 9 da 270 dereceyi belirtecektir. 0 derece ile 360 derece arasında bir fark yoktur. Diğer komut olan ARC ile de, istenilen sayıda kenara sahip çokgenler çizilebilir. Komutun şekli, ARC mx, my, açı1, açı2, açı3, xr, yr, mod biçimindedir. Burada bize yabancı olan 'açı1', 'açı2' ve 'açı3' parametreleri şu işlere yararlar: 'açı1' ve 'açı2' değerleri, çokgenin çiziminin yapılacağı başlangıç ve bitiş açılarını verir. Örneğin 0 ve 180 verildiğinde, çizilen çokgenin sadece sağ yarısı görünecektir. Açı yönleri, ANGL komutu ile aynıdır. 'açı3' ile de çizilecek iki nokta arasında kaçar derece fark olacağı belirtilmektedir. Bir diğer deyişle, (360/köşe sayısı) formülüyle bulunan derecedir. Yalnız, ARC komutu ile istediğiniz gibi bir dikdörtgen çizemediğinizi göreceksiniz. Bu durumda, REC x1, y1, x2, y2, mod komutu gerekecek size. x1 ve y1 ile, dikdörtgenin sol üst köşesinin koordinatlarını belirtiyorsunuz. 'x2' ve 'y2' ise dikdörtgenin X ve Y yönlerindeki kenar uzunluklarını belirtmekte. Ancak bir dikdörtgen çizmek yeri-
- ne, içi dolu dikdörtgen biçiminde bir blok yaratmak isterseniz ne olacak? Bunun için de, BLOCK x1, y1, x2, y2, mod kullanmalısınız. Burada 'x1' ve 'y1' deminki gibi. Ancak 'x2' ve 'y2' ile dikdörtgenin sağ alt köşesinin koordinatlarını belirtiyorsunuz. Ya dikdörtgen olmayan cisimlerin içinin doldurulması gerekirse?.. İşte o zaman PAINT komutu yetişiyor imdadımıza. PAINT x, y, mod ile verdiğimiz X ve Y koordinatının içinde kaldığı kapalı alan belirtilen mod'a göre doldurulacaktır.