Bu sayfadaki yazılar
Sayfanın metni
Sayfa 61
Figürler, tamamen grafik elemanları oldukları için, ne 40 karakter modunda ne de 80 karakter modunda görüntülenebiliyor. Bunların görüntülenebildiği tek mod, grafik modu. Örneğin “SSHAPE A$, 100, 100, 150, 120” ile, üst sol köşesi (100, 100) ve alt sağ köşesi (150, 120) olan yüksek çözümlemeli bir dikdörtgenin içeriği, A$ zincir değişkenine yerleştirilir. “GSHAPE A$,X,Y” ile, A$'de bulunan grafik bilgisi yeniden X,Y grafik pozisyonunda ekrana getirilir. Grafik nesnelerin gösterimi açısından bu figürler, Yaratıkların yanısıra, ikinci, verimli bir olanak oluşturuyorlar. Ayrıca C-128'in yüksek bellek kapasitesiyle bağlantılı olarak, yüksek çözümlemeli oyunlar için de yeni olanaklar sunuyorlar.
Entegre Edilmiş
Sprite Editörü
BASIC 7.0, istenen Yaratığın nokta tasarımını doğrudan ekran-
Software düzeyinde üretilebilen figürlerin (shapes) taslağı C-16'nın BASIC 3.5'inden alındı. Bunlar, zincir değişkenlerine saklanabilen ve buradan alınarak yine ekrana getirilebilen yüksek çözümlemeli veya renkli dört köşeli kesitler. Figür yaratma olanağı veren entegre bir sprite editörü içeriyor. SPRITE komutuyla, her Yaratık için şu karakteristikler verilebilmekte: Hareket, renk, öncelik, X ve Y yönünde genişleme ve mod (yüksek çözümleme veya renkli).
Örneğin, “SPRITE 4,41,6,1,1,0,0“ ile 4 no.lu Yaratık harekete geçirilir (4). Yaratık yeşil renkte görüntülenir (1), daha önce verilmiş olan ekran verilerine göre önceliği vardır (4), X yönünde genişlemiştir (1). Y yönünde genişlememiştir (0) ve yüksek çözümleme modunda görüntülenmektedir (0). Bunun tersine, daha önceden tanımlanmış bir Yaratığın karakteristiklerini belirlemek için, RSPRITE fonksiyonu kullanılabilir. SPRSAV komutuyla, bir Yaratığın dataları bir zincir değişkenine yerleştirilebilir veya tersine, bir zincirden okunabilir. Yaratığın yönetilmesi, bir Yaratığı ekranın belirli bir noktasına yerleştirmeye yarayan MOVESPR komutlarıyla gerçekleşir. Ekrandaki konum mutlak koordinatlar olarak verilebildiği gibi, daha önceki bir konuma göreceli olarak da verilebilir. Bundan başka, 1 ila 15 arasında bir sayı değeri olarak bir hız verildiğinde, Yaratık otomatik olarak verilen yeni konuma kayar. Koordinat verilerinin önüne artı veya eksi işareti konularak, mutlak koordinatlar göreli koordinatlara dönüştürülür. Belirli bir hız verilmediği takdirde, Yaratık hemen yeni yerinde belirir. “MOVESPR 7, -30, -40” 7. Yaratığı anında 30 nokta sola ve 40 nokta yukarı aktarır. C-64'te PEEK yapılarak, VIC'in çarpışma registerinde bir Yaratığın diğer bir Yaratıkla veya fon verileriyle çarpışıp çarpışmadığı saptanır. Bir Yaratık/Yaratık veya Yaratık/Fon çarpışması durumunda, bu komutla programın otomatik olarak kesilmesi programlanabilir. Örneğin “COLLISION 1,500“ün anlamı şudur: Programın akışı sırasında bir Yaratık/Yaratık çarpışması gerçekleşirse (1), BASIC programı kesilir ve 500. satırdan itibaren sürdürülür. RETURN'dan sonra program kesildiği noktadan devam eder. COLLISION ve bir BASIC programının yükünü Yaratık yönetimi açısından oldukça hafifleten son derece yararlı komutlardır. Bir Yaratığı ekranda çapraz hareket ettirmek için, C-64'te bir FOR...NEXT döngüsüyle çalışılması gerekir; bunun yanısıra çarpışmaları belirlemek için VIC'in çarpışma registerinde sürekli olarak PEEK yapmak gereklidir. C-128'de ise interrupt yönetimli çalışan iki komut yeterlidir. Bunlar sayesinde BASIC programı, Yaratıkların hareketi sırasında çalışmaya devam eder, fakat herhangi bir Yaratık çarpışması durumunda hızlı biçimde reaksiyon göstermek için otomatik olarak kesilir.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 60
Şimdi de Grafik
C-64'te yüksek çözümlemeli bir grafik elde etmek için birtakım BASIC ilaveleri satın almanın (veya çeşitli program dökümlerini girmenin) dışında varolan tek alternatif, insanın makine dilinde uzmanlaşmasıdır. Bu da yaklaşık olarak, kendi renkli televizyonunda renkleri ayarlayabilmek için insanın radyo/televizyon teknisyeni olması gibi bir şeydir. Commodore bu dezavantajı, C-16'nın BASIC 3.5'iyle ortadan kaldırmaya çalıştı. Commodore 128'in yüksek çözümlemeli grafiği, aynen C-64 ve C-16'nınki gibi oluşturuldu. 320x200 noktalık bir çözümlemeye karşılık gelen toplam 64 000 nokta ayrı ayrı sayılabilir. Bunun yanısıra her bir noktanın dört renkten birine sahip olabildiği, 160x200 noktalık çözümlemeli bir renkli mod öngörülmüştür. C-128'in C-64 ile arasındaki en büyük fark, C-128'in grafiğinin tümüyle BASIC'e dayalı olmasıdır. DRAW, BOX ve CIRCLE gibi komutlar, doğrular, üçgenler, dörtgenler ve çokgenlerden çembere, hatta elipse kadar birçok geometrik şeklin kolayca ve hızlı bir biçimde çizimini sağlar. Tüm bu şekiller istendiği kadar küçültülebilir, büyütülebilir, döndürülebilir veya herhangi bir kesiti görüntülenebilir. PAINT, kapalı yüzeyleri renkle doldurur; SCALE, şekil yüzeyini bölümlere ayırır; SCNCLR ekranı temizler.
Tam grafik komutları hem yüksek çözümlemeli, hem renkli modda çalışır. GRAPHIC komutuyla istenen grafik modu seçilebilir. Seçenekler, 40 karakterlik metin, yüksek çözümleme, metin pencereli yüksek çözümleme, renkli grafik, metin pencereli renkli grafik ve satır başına 80 karakterlik metin olmak üzere altı tanedir. Commodore firması, 80 karakter modunda mümkün olan, 640x200 noktalık bir çözümlemeden bahsetmekte. Fakat gerçekten iki katı çözünürlüklü bir grafik burada pek düşünülemiyor: 640 nokta, 80x8'in, yani 80 karakter kere karakter başına 8 noktanın (karakter matrisi 8 x 8) bir sonucu olarak ortaya çıkmakta. Test yaparken yararlanılan el kitabı, iki kat çözümlemeli grafik konusunda hiçbir şey söylemiyor. Denemeler sonucunda ortaya çıkan ise, GRAPHIC komutunun, biraz evvel sayılan altı parametreyle (seçenekle) çalıştığı. Diğer tüm denemeler “Illegal Error”
mesajı veriyor. Açıkça ifade etmek gerekirse, 640x200 nokta çözümlemeli gerçek bir grafik, C-128'de belli bazı trükler kullanılmadan gerçekleştirilemiyor. Özellikle BASIC 7.0'ın tüm grafik komutları C-64'ten tanıdığımız 320 x 200 nokta çözümlemesine (tabii ki tercihe göre 160x200 noktalık renkli moda) dayanıyor.
Bir başka dezavantaj: Tüm bu güzel grafikler, yaratıklar (sprites) ve 40 karakter metin, yalnızca bir kompozit (composite) monitörle kullanılabiliyor, bir RGBI monitörde sonuç alınamıyor. Öte yandan 80 karakter metin gösterimi yalnızca bir RGB monitörde (tabii monokromda da) mümkün. Afallamış olan kullanıcı, bir monitörünün eksik olduğunu şimdi fark ediyor. Böylece Commodore dünyada ilk kez iki monitörlü ev bilgisayarının patentini almayı garantilemiş oluyor. Fark ettiğiniz gibi, kompozit ve RGB monitörler arasında bir tercih yapmak değil, 40 karakter, grafik, yaratıklar için bir kompozit monitör ve 80 karakter için bir RGB veya siyah/beyaz monitör sahibi olmak gibi bir zorunluluk var. Burada Commodore, özel olarak C-128 için geliştirdiği 1902 monitörüyle imdada yetişiyor. Bu monitörde bir kompozit, bir de RGB giriş var. Monitörün önündeki ufak bir şalterle iki işletim türünden biri seçilebiliyor. Software ile gerçekleştirilebilecek bir seçim öngörülmemiş. Bu nedenle istenebilecek olan tek şey, şalterin yeterince sağlam olması; çünkü çok sık kullanılması gerekebiliyor. C-128'in grafiği için son olarak söylenebilecek şey, çözümleme açısından C-64'le konmuş olan standarda (320x200 nokta) karşılık geldiği ve C-16'da olduğu gibi BASIC'le desteklendiğidir. Figürler (Shapes), Yaratıklar (Sprites) ve Sprite-Editörü Grafikten bahsedildiği zaman, figürler ve Yaratıklar ihmal edilemez. Bu hareketli grafik nesneleri açısından C-128, C-64 hardware'inin ve C-16 software'inin iyi bir sentezi olarak tanımlanabilir. C-64'ten kaynaklananlar, hardware (VIC çipi) tarafından üretilen ve ekranda görüntülenen, programlanabilen, hareketli grafik nesneleri olan sekiz Yaratığı. Yaratıklar, 40 karakter modunda veya farklı grafik modlarında üretilebilir, fakat 80 karakter modunda bu mümkün değildir; çünkü bunları üreten VIC, RGBI yeteneğine sahip değildir.