Amiga Dünyası sayı 28, sayfa 31

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 31

RIMOS THE CREATOR

Uzun bir aradan sonra, yeniden açılan AMOS Köşesi'nde artık birlikteyiz. Daha önce bu köşede Burak ÖZDEMİR arkadaşımız tarafından açıklanan komutları, yazmayacağız. Bunun yerine, bu komutların kullanım alanlarını belirten pratik programlar vererek, bu programların önemli yerlerini anlamanızda sizlere yardımcı olacağız. Kullanacağımız yeni komutların açıklamalarını da programla birlikte yapacağız. Belirtmemiz gereken bir diğer nokta da, yazı dizimizde AMOS komutlarını stilde yazacağımız. Bu sayede AMOS komutlarını daha kolay ayırdedebilirsiniz.

tekrarl

Bunun dışında; AMOS ile ilgili yenilikleri de sizlere sunup, kafanıza takılan her türlü soruyu da elimizden geldiğince yanıtlamaya çalışacağız. Bunun için sorularınızı derginizin AMOS köşesine, hiç çekinmeden, göndermeniz yeterli.

Bunlardan ilki, ZONE komutlarının kullanımı. Zone kelimesi İngilizce'de, alan, bölge gibi manalara gelmekte. AMOS'taki ZONE komutları ile, belirli ekran bölgelerine bob, sprite veya mouse göstergeci vb objelerin girip girmediğini, girdiyse hangi bölgeye girdiğini algılatabilirsiniz. Zone komutlarından olan Set Zone komutu ile, belirli bir ekran bölgesini bilgisayara tanıtabilirsiniz. Ancak bu ekran bölgesini bilgisayara tanıtmadan önce Reserve Zone N komutu ile, kaç adet bölge öğreneceğinizi belirtmelisiniz. Set Zone komutunun formatı: Set Zone N, X1, Y1 To X2, Y2 şeklinde. Buradaki 'N' değişkeni yerine, tanımlayacağınız bölgenin numarasını vereceksiniz. Ancak bu değer, Reserve Zone komutu ile verdiğiniz değerden büyük olmamalı ve sıfırdan da büyük olmalı. Set Zone komutu ile tüm tanımlamaları-

Hayrettin YILDIZ & Murat YILDIZGÖRER kenin değerinin '0' olması, mouse göstergecinin hiçbir bölgenin içerisinde olmadığını gösteriyor. Ayrıca Zone(X, Y) fonksiyonuyla da, verilen koordinatın tanımlanan bölgelerden hangisinin içerisinde bulunduğunu öğrenebilirsiniz. Bu fonksiyonu da bir Bob'un, herhangi bir ekran bölgesine girip girmediğini tespit etmekte kullanabilirsiniz. Koordinat olarak Bob'un bulunduğu yeri vererek bunu yapabilirsiniz. Ancak bu şekilde yaptığınız algılama, gerçek algılama değildir. Sadece Bob'un sol üst köşesinin (veya Hot Spot komutu ile belirlediğiniz noktasının) girdiği bölgeyi bulabilirsiniz. Hzone(X,Y) fonksiyonu ise Zone fonksiyonunun yaptığı işi donanım (hardware) koordinatları ile gerçekleştiriyor. Yani bu fonksiyonla da, Sprite'ların bulunduğu bölgeyi (Bob'larda olduğu gibi) öğrenebilirsiniz. — Bildiğiniz gibi — Sprite'lar, Bob'lardan farklı olarak, hardware koordinatlarını kullanıyorlar. Aslında Hzone fonksiyonu, Zone fonksiyonunun özel bir şekli. Yani; Zone(X,Y)=Hzone(X Hard(X),Y Hard(Y)) veya Hzone(X,Y)=Zone(X Screen(X),Y Screen(Y)) Tahmin edebileceğiniz gibi, Mouse Zone değişkeni de Hzone fonksiyonunun mouse için özelleştirilmiş hali. Yani; Mouse Zone=Hzone(X Mouse,Y Mouse) Reset Zone N komutu da, daha önce Set Zone komutunu kullanarak tanımladığınız ekran bölgelerinden, verdiğiniz numaralı olanın algılanmasını engelliyor. Bu bölgeyi tekrar aktive etmek için Set Zone komutu ile bir daha tanımlamalısınız. Şimdi de Zone komutlarından bazılarını kullanarak yazdığımız, IKON DEMO adındaki örnek programımıza geçelim. Bu sıkça anılan ikon sorununu yaptıktan sonra geriye, bu mouse göstergecinin girip girmediğini algılatmak kalıyor. AMOS'ta, mouse göstergecinin, tanımlanan bölgelerden hangisinin içerisinde bulunduğunu anlamaya yarayacak Mouse Zone değişkeni bulunmakta. Bu değişici bir örnek olacağına inanı- Şimdi de prosedürlerden oluşan programımızın açıklamasına geçelim. İlk prosedürümüz, yüksek çözünürlükte bir ekran açarak paletini ayarlıyor. Daha sonraki KUTU prosedürü ise, IKON YAP prosedürü için gerekli olan kutuların

Klavyeyle gezinmek için ← ve → tuşları.