Sayfanın metni
Sayfa 69
SATIR 2: (x) değişkeninin değerinin -1 olup olmadığı kontrol edilir. Eğer -1 ise spritesola adlı rutine atlar. (x) değişkeni 0 ise program bir alt satırdan devam eder. SATIR 3: oku adlı label'a gider. Döngüyü başlatır. Mouse portundaki joystick hareketlerini kontrol etmek için ise; JLEFT(0); komutunu vermelisiniz. JRIGHT(n) FONKSİYONU: Joystick'in sağa doğru hareketlerini kontrol etmek için kullanılır. n port numarasını belirtir. Sağa hareket olursa fonksiyonu okuyan değişken -1 değerini alır. Aksi halde 0 değerini alır. Örnekler;
X = JRIGHT(0) x1 = JRIGHT(1) Birinci satırda x adlı değişken 0 nolu mouse portundaki joystick sağa gitti mi gitmedi mi kontrol eder, ikinci satır ise joystick 1 nolu portta iken sağı kontrol eder. Değişken olarak x1 adlı değişkeni kullanır. JUP(n) FONKSİYONU: Joystick'in yukarı itilip itilmediğini kontrol eder. Bu fonksiyon da sonucu okumak için bir değişken kullanır. Eğer n numaralı porttaki joystick yukarı itildiyse ilgili değişken -1 değerini, yukarı itilmemiş ise 0 değerini alır. y = JUP(0) y1 = JUP(1) JDOWN(n) FONKSİYONU:
Joystick'in aşağı çekilip çekilmediğini kontrol eder. Sonucu bir değişken aracı ile okuyan fonksiyon, çekilmesi halinde -1 değerini yapar. Aksi halde 0 olarak kalır. y = JDOWN(0) y1 = JDOWN(1) FIRE(n) FONKSİYONU: Bu fonksiyonda, tahmin edilebileceği gibi n nolu porttaki joystick'in ateş tuşuna basılıp basılmadığını kontrol eder.
Basılması durumunda -1 değerini alır. Tersi durumlarda 0 olarak kalır. y = FIRE(0) y1 = FIRE(1) Böylece joystick kontrollü gerekli AMOS Basic fonksiyonlarını görmüş olduk şimdi bütün bu
fonksiyonları kullanarak ku • program yapalım ... Program ın listesi : 1 O IF JLEFT(1) THEN PRI ılT • PORTTAK i JOY SOLA ITILOr 20 IF JRIGHT(1 ) THEN PR PORTTAK i JOY SAGA ITILOr 30 IF JUP(1) THEN PRINT • PORTTAK i JOY YUKARI ı r 40 IF JDOWN(1) THEN PR T PORTTAKi JOY AŞAGI ITIL!Dr 50 IF FIRE( 1) THEN PRI lT· PORTTAKi JOY ATEŞE BAS 60 IF JLEFT(O) THEN PRI T-o PORTTAKi JOY SOLA ITiLOr 70 IF JRIGHT(O) THEN PR 'fl -o PORTTAKi JOY SAGA ITIL!Or 80 IF JUP(O} THEN PRINT -o PORTTAKi JOY YUKARI iTilOr 90 IF JDOWN(O) THEN PR T-o PORTTAK i JOY AŞAGI fTILOr 100 IF FIRE(O) THEN PRI T '"O
PORTTAKi JOY ATEŞE BASlLDI"
110 GOTO 10 .
Programın açıklaması: Yukarıdaki satırlarda gördüğümüz IF cümlelerinde verilen ifadelerde JLEFT(1), FIRE(0) fonksiyonlarının doğru mu yanlış mı olduğu kontrol edilir. Normal olarak Jleft(1) komutu
1. porttaki joystick sola çekildiğinde -1 değeri verdiğinde doğru yani true yani pozitif bir sonuç olacaktır. IF cümlesi ise fonksiyonun doğruluğunu kontrol ettiğinden -1 olması durumunda THEN komutundan sonraki komutları çalıştıracaktır. Böylece 1. porttaki
,ır so a çekildiğinde sola çekildi g me!.aJiar verecektir. Bu pcog•an' ıoystıcklerin izi test etmek a~a yapılmışçok basit bir pcog·amo · Daha da geliştirılebılir, eğ n bazı grafikler eklenebilir. Yarla ,ıoystıck hareket eliirildiğinde
~a baz., anımasyonlar Iab ıt. Tabii bu gıbi şeylerı eaha rde ogreneceğiz fakat br şey yapabilen varsa bize ~er p oığer AMOSçularta payta.şab ır Sonuçta bu ayki
dosya bitti. Sizler eğer bir sorununuz olursa, herhangi bir
:mJiu ullanmakta zorluk rsanız . Yada Metai-Rap çugs nde kaset değışmek sanrz (çakım yapılır) ışte size ad es her konuda yazmaktan
~msyn . BURAK OZIŞIK P 5- FIKIRTEPE
KADIKÖY-İSTANBUL
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 68
Merhabalar, yeni bir AMOS köşesiyle yine karşınızdayız. Bu ayki konumuz geçen ay başladığımız SCREEN yani ekran açma, kapama ve ekranla ilgili bazı efektlere devam ederek bir kaç örnek program açıklayacağız. Bir de joystick kontrolüne yarayan joy.
komutlarını örnekleriyle göreceğiz. Fakat ilk önce bu ayki mektuplarımıza bir göz atalım... Birinci mektubumuz, Ankara'da BURÇAK TÜRKMEN'den gelmiş. Burçak arkadaşımızın mektubu şöyle... Amigamı alalı iki üç ay kadar oluyor. Yaratıcı bir şeyler yapmak için çevremden araştırdığımda, hep bana AMOS'u almamı tavsiye ettiler. Ben de sonunda bu programı aldım, fakat programın komutları hakkında hiç bir bilgim yok. Elimde de hiç döküman yok. Sadece 64'LER Dergisinde okuduğum köşenizle bir şeyler yapıyorum. Lütfen bana AMOS için bir kitap önerirmisiniz.
Eğer siz de bu kitap varsa fiyatı ne kadar. Cevap : Sanıyorum Burçak büyük bir çıkmazın içinde. Amigamı ilk aldığım zaman bende büyük bir döküman eksikliği hissetmiştim.
Herneyse biz soruyu cevaplayalım; Evet böyle bir kitap var. Bu kitap AMOS'un kendi orijinal manuel'i. Piyasada İngilizce ve Türkçe olarak bulunuyor. Dergide de bir tane var ve İngilizce. Sadece fotokopi çektirebiliriz. Fiyat konusunu ise Apo abiyle konuşmak yerinde olur. Bu ayki ikinci mektubumuz Levent Okur adlı bir okurdan. Mektubu şöyle; Amos'la, müzik ve grafikleri başka oyunlardan çalarak, bir oyun yaptım (yaptığı oyun bir puzzle). Oyunda önünüze gelen grafikler hakkında sorular soruluyor, bilirseniz bir sonraki grafiğe geçiyorsunuz. Bilemezseniz programdan atılarak cezalandırılıyorsunuz. Böyle bir oyun yapmamın sebebi, AMOS ile joystick kontrolünün nasıl yapıldığını bilmememden kaynaklanıyor. Bunun için hangi komut yada komutların gerektiği ni söylerseniz çok sevinirim. Cevap : Böyle bir oyun yapabildiğin için sevindim. Hele hele şu andaki Türkiye'nin genç kuşak bilgisayar potansiyeli büyük ölçüde oyun oynama alanına harcanıyorken. Oyununu bana göndermeni isterim.
Eğer gönderecek olursan diskine istediğin bir programı çekebilirim... Gelelim joystick kontrol etme sorununa. Bu sorununuz da AMOS yazı dizisinin bu ayki bölümünün konusu bu. Dikkatlice okuyarak joystiği kullanmanın yollarını öğrenebilirsin... Gelelim bu ayki konumuza. İşte Joystick fonksiyonları; JOY (n) FONKSİYONU : Joy fonksiyonu, kontrol edildiği zaman bir binary sayı verir. Bu sayı joystick hareketini belirler. Fonksiyonun kullanılışında port numarasını da vermek zorunludur. Normalde joystick'in takıldığı port'un numarası 1'dir. Eğer mouse portundaki joystick'i kontrol etmek isterseniz port numarası olarak 0 sayısını vermelisiniz. Bitlerle fazla ilişkili değil ve onları kullanmakta zorluklar çekiyorsanız, diğer joystick kontrol komutlarını deneyebilirsiniz. Bu komutlara geçmeden önce joy (n) fonksiyonun verdiği binary sayının bitlerini inceleyelim. Bit no : gösterdiği joy hareketi 0 joystick yukarı 1 joystick aşağı 2 joystick sola
3 joystick sağa 4 joystick ateş Bu bitleri diğer komutlarla okuyarak joystick hareketlerini anlayabilirsiniz. Şimdi bu komutla ilgili bir kaç örnek görelim.
haıeket = JOY (1)
yukarıdaki komut, 1 inci yani joystick'in normal olarak durduğu porttaki joystick hareketlerini kontrol eder ve 'hareket' adındaki değişkene yazar. hareket2 = JOY (0) bu komut ise mouse portuna takılan joystick için joystick hareketlerini kontrol eder ve bu sayıyı hareket2 adlı değişkene koyar. Joy komutu işin zor yanıydı bir de yukarıdaki bitleri teker teker kontrol edebilen beş ayrı fonksiyon daha var. Bunların kullanımı oldukça basit. Size, joystick kontrolü için bu beş komutu kullanmanızı öneriyoruz. Bu komutlar Jleft (n),
JRight (n), JUp (n), JDown (n) ve
Fire (n) fonksiyonları. Şimdi bunları teker teker açıklayalım... JLEFT (n) FONKSİYONU :
Adından da anlaşılabileceği gibi joystick'in sola hareketini kontrol eder. Tabii ki port numarasını belirtmelisiniz. Bu fonksiyonu da JOY(n) gibi bir değişkene okutmalısınız. Eğer joystick sola çekilirse, değişken -1 değerini alacaktır. Eğer sola hareket olmazsa değişkenin değeri her zaman 0 olur. Birkaç örnek görelim ... oku: x = JLEFT(1)
IF x = -1 THEN GOTO spritesola GOTO oku SATlR 1 : joystick sola itildimi kontrol eder. Eğer sola hareket
yapıldıysa (x) değişkeni -1 değerini alır. Tersi olursa x'e 0 değeri konulur.