Amiga Dergisi sayı 2, sayfa 22

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 22

Merhaba! İkinci kez "Merhaba" çünkü geçen ay AmosPro'yu benim yerime Volkan hazırlamıştı. Geçen ay yayınladığımız programın yararlı olduğunu umarım (tik tak tik tak). Bu yazımda ilginizi çekeceğini umduğum bir komuta, açıklayıcı ve çeşitli sorulara yer veriyorum.

Bu ayki şanslı komutumuz:

— Screen Offset; yeni başlayanlar, AMOS'u kötü bir Shoot'em Up sanan--

Screen Offset <Ekran No>, <X koordinatı>, <Y koordinatı>! AMOS ile gerçekten neler yapılabileceğini bilmiyor veya merak ediyorsanız, gelmiş geçmiş en iyi AMOS köşesinde, AMOSPRO'da aradığınızdan da fazlasını bulacaksınız.

Gör Ekranın belirtilen koordinatlardan itibaren görünmesini sağlar. Eğer koordinatları kısa aralıklarla hızla değiştirirseniz ekranın kaydığını göreceksiniz. Gerçekte Amos, ekran numarasını verdiğiniz ekranın başlangıç adresini değiştirir. Bu işlem de yapabildiği en hızlı işlerden biridir. Bu sayede bir frame'de (saniyede 50 tarama) hem ekranı kaydırabilir hem de diğer işlemlerinizi yapabilirsiniz. Şimdi sıra ufak programımızda. Yalnız bir hatırlatma, bildiğiniz gibi dergimiz her sayıda yeni bir disk hazırlamakta (isteyenler formda belirtilen şekilde diske sahip olabilirler). Bu diskin içinde çeşitli Public Domain, ShareWare ve FreeWare programlar bulunmakta. Ayrıca bu itibaren Amos örnek programlarını da disk içinde bulabileceksiniz. Program, çalışması için gerekli grafik, ses ve diğer datalarıyla birlikte çalışmaya hazır vaziyette. Size Amos'dan yükleyip çalıştırmak kalıyor (Bu arada resim Scenery Animator ile yaratılmıştır. Sanırım bir ara dergide bu programı da açıklayacağız ve ilk versiyonu ki bu PD'dir; MANYETİK PAKET içinde yer alacaktı, paniğe gerek yok bizi bekleyin) Şimdi programa Örneğimiz Screen Offset komutuyla yapılan birkaç kapsamakta, Programı daha iyi kavrayabilmeniz için önemli gördüğüm bazı satırları açıklamak istiyorum. Hemen başlangıçta belirtmek isterim, yeri geldiğinde bu komutları daha geniş ve örnekleriyle açıklayacağım. Şu anda kısaca geçiyorum, "Bu ne biçim açıklama yav" demeyin. Korkmayın, paniklemeyin, amuda kalkmayın. Ayrıca programı kendiniz Amos'a yazacaksanız, satır başlarında bulunan satır no'larını yazmayın, bunlar sadece programın daha kolay anlatılması için konulmuştur. 1. satır ve HIDE komutu. Bu komut mouse pointer'ının kaybolmasını sağlar. 2. satırdan 11. satıra kadarki satırlar ekran düzenlemeleri ve ekrana çıkacak resmin çizilme işlemleri. 11-16 arası satırlar efekt için kullanılan ekrana resmi kopyalar. Screen Copy komutu için ufak bir açıklama. Komut ekrandan istenilen ekrana verilen aralıktaki ekran bölgesini verilen noktadan itibaren kopyalar. Sanırım hiçbir şey anlamadınız. Kullanılış vermek daha uygun olacak. Screen Copy (Ekran 1 no), (x1), (y1), (x2), (y2), to (Ekran 2 no), (x3), (y3), "Ekran 1" no'lu ekrandan x1, x2, y1, y2 aralığındaki dörtgen bölge "Ekran 2" no'lu ekranın x3, y3 noktasından itibaren kopyalanır. 15-19 arasında efekt 1'in gerçekleştirdiği satırlar yer alır. Satırları incelediğinizde döngü içinde yer alan Screen Offset komutunun olduğunu düşünürsek şu anda 100,0 ile 420,256 arasında kalan bölge görüntülenmekte. Şimdi döngümüze dönelim, döngü değişkeni olan K'nın 640 olduğunu düşünürsek ekranın o anda 640,0 ile 960,255 arası görüntülenmekte. 960, grafiğin X eksenindeki uzunluğudur. Eğer olur da bu döngüdeki 640 sayısını daha artırın. 640'ın üstüne çıktığınızda ekranın altında kirlenmeler göreceksiniz. Bunun sebebi, yazının ilk başında belirttiğim gibi, Screen Offset komutu ekranın gösterilen bölümünün adresini değiştirmesidir. Eğer ekran limitlerini aşarsanız artık görüntüye ekrana ait olmayan hafıza bölgeleri çıkacaktır. Bu da ekranın kirlenmesine sebep olacaktır. Bu da Screen Offset komutu kullanılırken dikkat edilmesi gereken en önemli nokta (Tısss tak dum ta tak). Şimdi sıra ikinci efekte geldi. Gördüğünüz gibi bu efekt 20. ile 31. satırlar arasında yer almakta. Bu satırları açıklamadan, siz kendiniz rutinin ne yaptığını araştırırsanız program sizin için daha faydalı olacaktır (Editör- Aslında bilmiyor). Deneyin... Evet, açıklamaya başlıyorum (Ed- biliyormuş). Rutin sayesinde ekran 1 ile 360 arasında X ekseninde kaydırılmakta. İlk döngü yani 21. satırda başlayan döngü step miktarını ayarlamak için kullanılıyor. Yani, L değeri 1 iken ekran 1'er piksel (nokta), 2 iken 2'er piksel kayacaktı. 22. satırda başlayan döngüyle ve onu izleyen satırlarda ekran belirlenmiş steplerle X ekseninde sağdan sola doğru kayacaktır. 26. satırdan 30. satıra kadar olan döngü ise ekranı soldan sağa doğru kaydırılır. 21. başlayan döngü sayesinde bu ekran kaydırma işlemleri 4 kez tekrarlanacaktır. Fakat komutuyla ekran X ekseninde kaydırılmakta. Daha sonraki satırda Wait Vbl komutunu görüyorsunuz. Bu komut ekran taramasının bitmesini bekler. Döngü gördüğünüz gibi 640'a kadar sürmekte. Bunun sebebine gelince ekran 960'a 400'lük ama herhangi bir anda sadece 320'ye 256'lık bölümü görülmekte. Yani ekranın sol üst köşesinin 100,0 her defasında bir öncekine göre daha hızlı kayacaktır. Hatırlayacağınız gibi bu döngü step ayarlamasını yapıyordu. Ve örnek programımızdaki son efekt, 3 no'lu efekt. Bu efekt 31. satırdan itibaren başlıyor. Bu satırdan sonraki satırları inceleyip, yapılan işlemi anlamaya çalışın. Açıkçası programın en karmaşık kısmı bu-

Benim kullandığım grafik Scenery Animator aracılığıyla hazırlandı. Sizin kullanacağınız grafiklerin programınızın konusuyla ilgili olması programı daha etkili kılacaktır.

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