Bu sayfadaki yazılar
Sayfanın metni
Sayfa 69
Oyunlarının veya programlarının başına çok karmaşık ve uzun şeyler koyuyorsun. Biraz sade olsunki oynayanı sıkmasın. Oyunda da her komuttan sonra resmi tekrar yükletmemelisin. Birde eğer adventure yapmayı kafana koyduysan öyle |f'lerle her komutu tek tek yapamazsın, onlara genel bir komut bulma programı yapmalısın. Belki ilerde böyle bir program yayınlayabilirim. Çizim programınada baktım. Geçen ay dediklerimi tekrar oku. Onlar olursa program çok daha iyi olur. Bu arada iddia işine gelince. AMOS'un Update'leri Public Domain olabilir ama ben senin AMOS 1.3'ü istediğini zannetmiştim onun için bu karışıklık oldu. Kusura bakma (çünkü bende AMOS'un hiçbir Update'i yok) . 1) Ben bu hatayı pek göremedim ama programının o işle ilgili olan yerine benim bazı programlarımın başında yazdığım gibi Curs Off : Paper O : Pen 2 :Cls O komutlarını yaz bakalım ne olacak. 2) Normalde yok denilebilir ama AMOS'ta Every n Gosub, Every n Proc ve Every On/Off diye üç komut var. Bu komutlarla her n saniyede bir istediğin bir altprogramı veya Procedure'ü otomatik olarak çalıştırabiliyorsun. Herhalde bir miktar işini görür. 3) Bende bir Translator programı vardı. Onun yardımıyla ses ve grafik olmadan GW Basic'te çalışabiliyor ve DOS işlemleri yapabiliyordum. Zaten Amiga Hardware ilavesiyle bile IBM'e tam uyumlu olmazken bir Software ne kadar işine yarar onu bilemem. 4) Şimdi bu bir kere banada oldu. Gidip programımı F2 tuşuna basarak test
PROGRAMİ 'Cenk Karakaş'ın 1. sorusunun cevabı ' Program random bir sayı seçer ve "o sayıyla ilgili alt programa gider Randomize Timer : Paper 0: Pen 2 : Cls 0 Do Cls 0 : Home ' Random sayı bulunuyor RANDOM-Rnd(3)4 1 Print "Random sayi : ""RANDOM ' Random sayıyla ilgili alt ' programa gitme Gosub <Bir boşluk> " Loop "Alt Programlar PROGRAMİ: Print At(0,0);"Alt Program 1' desiniz" Wait Key : Return PROGRAM2: At(0,0);"Alt Program 2' desiniz" Wait Key : Return PROGRAM3: Print At(0,0);"Alt Program 3' desiniz" Wait Key : Return PROGRAM4: Print At(0,0);"Alt Program 4' desiniz" Wait Key : Return
ettim ve tekrar Save ettim, olay çözüldü. Bu dediğimi yap yine olmuyorsa bana bildir. 5) Adını yazarak! Basit değilmi? 6) Blitz Basic'i ilk defa senden duyuyorum Ziya. Yani o dil hakkında hiçbir bilgim yok. PROBLEM CHILD 1) Adın hakkaten MURAD mı? Yoksa Murat olupta inadına Murad mı yazıyorlar? 2) Bana Sprite oranları, renk ve ne kadar hafıza kullandıklarını yazarmısın? 3) AMOS'ta kullanmak istediğim 10 tane resmi Fast Ram'a veya Ram Disk'e ya da Rad Disk'e nasıl yerleştirir ve nasıl geri çağırabilirim? 4) AMOS'ta Feary Tale ve benzeri oyunlardaki gibi geniş alana resim yerleştirmesini nasıl yapabilirim? 5) AMOS'ta ekran kaydırmak için ayrı ayrı çizdiğim 320*200 yada daha ufak fırçaları birleştirerek kaydırma yapabilirmiyiz? 6) Beşinci sorudaki işlemi 1000*200 resim çizerek tek parça kaydırıyorum, resmin kenarları parça parça titriyor. 7) Bazı oyunlarda ekranın üstünde oyuncuların skorunu, gücünü v.s gösteren çevçeve var.Bunu nasıl yaparız? 8) AMOS'da mouse'un şekli nasıl değişir? (kendi tasarımıza göre) 9) Eye of The Beholder'da 3 boyut olayı nasıl hazırlanıyor ve nasıl saklanıyor. YAŞAR GÜNAK OMAY: Yaşar, bu ay Programcılar ordusuna ikinci katılan kişisin. kutluyorum ve mektuplarının devamını diliyorum. Bu arada AMOS'un Türkçe kitabını alabilmek için ya bizim dergiye ya da Beşiktaş Bilgisayar'a telefon et. Şimdi son duamı edip sorularını cevaplamaya başlıyorum. 1) Evet adım gerçekten Murad. Yani son harfi "d" , 2) Sana sprite'lar hakkında genel bir bilgi vereyim. Amiga 8 tane 4 renk, 4 tanede 16 renk sprite kullanmana izin veriyor ama AMOS'ta birkaç hileyle bunları arttırabiliyorsun.AMOS'ta sprite'ın yüksekliği 16 ile 256 arasında değişiyor ve harcadığı hafıza, yüksekliğiyle 96 sayısının çarpımındar.. oluşuyor. Yani bir sprite'ının hafızada kapladığı yer 1536 Byte ile 24 Kbyte arasında değişiyor. 3) Şimdi ilk önce AMOS'u yükle. Dir "Ram:" yazarak Ram diski aç. Sonra resimlerini disketten yükleyip Save "Ram:<Resmin adı>",<ekran no> yazarak Ram'a kaydet. Eğer 512K ek Ram'ın varsa resimlerin zaten ilk önce Fast Ram'a kaydedilirler. Bundan sonra Load "Ram:<Resmin adı>",<ekran no> diyerek resimlerini yükleyebilirsin. 4) Evet Yaşar ne sormak istediğiri anladım. Şimdi bu olayı AMOS'ta AMOS MAP DEFİNER ile yapabiliyorsun. İlk önce D.Paint'te sol üst köşeden başlayarak isteğine göre 16*16 veya 32*32'lik kutuların içine küçük resimler yap. Sonra bunları demin söylediğim AMOS programını kullanarak birleştirip çok büyük ekranlar yapabilirsin. 5) Herhalde bu soruyu bir sonraki soruda olan olayı önlemek için sordun ama bunun ve aşağıdaki sorunun cevabını verebilmem için yaptığın programı görmem lazım. 6) Yukarıdaki cevabın aynısı geçerli. 7) Bu çerçevenin boyunda ve eninde başka bir ekran açarak bu işi kolayca yapabilirsin. 8) Change Mouse komutunu kullanarak istediğin bir Sprite'ı (16 pixel eninde ve 4 renk olmalı) pointer olarak seçebilirsin. Bunu yapmak için Pointer yapmak istediğin Sprite'ın numarasına 3 ekleyip bunu Change Mouse'un yanına yaz. Örneğin Change Mouse 4'ün anlamı Sprite Bank'ındaki ilk Sprite'ı pointer yap demektir. 9) Eğer nasıl çok fazla resmin yüklemeden kullanıldığınısoruyorsan, bu işi Spack, Unpack ve Pack komutlarıyla yapabilirsin. Eğer AMOS ile ilgileniyorsanız ve geleceğin programcısı olmak istiyorsanız bana yazın... MURAD'Vahdettin' OMAY
PROGRAM2 ' Resim adı yazan yere 320*200 ' boyutlarında 32 renk bir İsmimi yazın sonra istediğiniz yerlerin 'foroğrafını çekin. 40 tane ' filminiz var. Screen Open 1,320,200,32,0 Curs Off : Flash Off : Paper 2 Pen 2 : Cls O Screen Open 0,320,200,32,0 Curs Off : Flash Off : Paper 2 Pen O : Cls 0 : Change Mouse 2 ' Yeni Pointer çiziliyor Ink 2 : Box 1,1 To 40,40 Ink O : Bar 1,1 To 40,30 Bar 10,1 To 30,40 ' Çizim Bob olarak alınıyor Get Bob 1,1,1 1041,41 'Pointer'ın tutma yeri orta nokta ' olarak belirleniyor
“ Fotoğraflar 1.ekrana kopyalanıyor
Cls O : Hot Spot 1,20,20 Load İff "<Resim adı>" ' 0.ekranın rengini alıyor 1: Get Palette O : Screen O
o X-X Screen(X Mouse) : YzY Screen(Y Mouse) Bob 1,X,Y,1 : Walt vbi If Mouse Click-1 Shoot
Screen Copy 0,X-19, Y-19, X4-19, Y419 To 1, X2, Y2 ' 1. ekrandaki fotoğraflar sıralanıyor Add X2,40 If X2-320 Add Y2,40 :X2-0 If Y2-200 : Screen To Front 1 : End: End İf End If : End İf Loop
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 68
Herkese merhaba. Bana gönderdiğiniz mektuplar için binlerce teşekkürler. Özellikle Cenk'le Serkan'a bir kat daha teşekkürler (bu arada mektuplarınız fazla geldi ve Cenk, Levent ve Umut'un mektuplarını gelacek aya bırakmak zorunda kaldım) . İnanın sayfada yer olsa köşenin yarısını onlara ayırırdım ama mektupların fazlalığından dolayı sohbet edecek yer kalmadı. Sohbet edemiyorum ama hiç değilse geçen ay girdiğim bunalımdan mektuplarınız sayesinde çabucak kurtulmuş oldum. Evet artık ufak ufak yazıya başlayalım. Bu arada unutmadan doğum günüm bu ayın üçünde (yani doğum günüm 3 Temmuz) (Onun iöin mi Tom Cruise'a bu kadar benziyorsun-MAC) . Bu yüzden hertürlü küçük veya büyük hediyelerinizi dergiye adıma yollayabilirsiniz. Evet programları artık kendi içinde açıkladığımiçin hemen mektuplara geçiyorum... O PROFESSİONAL'I DAHA ÇOK SEVİYOR 1) Procedure nedir? Ne işe yarar, ne zamanlar kullanılır? 2) Programlarında kullanılan komutların kısa bir açıklamasını verirmisin? 3) AMOS 1.3 nedir? Normal AMOS'tan bir farkı varmıdır? 4) AMOS Compiler hakkında bilgi verirmisin? 5) Acaba derginin ve de birazda kendi çabalarımla çalışsam kaç ay sonra basit bir oyun yapacak hale gelirim. LEVENT ÖZER OMAY: Merhaba Levent. Ne oldu yine başın epey derde girmiş,
Prof
birçok soru sormuşsun. Olsun, amaç sizi geleceğin programcısı yapmak. Mektuplarına devam et tamammı? 1) Procedure modüler programlamanın temel taşıdır. Procedure'leri kısaca bağımsız alt programlar olarak tanımlayabiliriz. Bağımsız olmalarının sebebi Procedure'ün içinde kullandığın değişkenlerin ana programdan bağımsız olması. Bunun için bir Procedure yazdıktan sonu onu her programında kullanabilirsin. Aynı zamanda Procedure yardımıyla kendi komutlarınıda yapabilirsin. 2) Tam senin dediğin gibi olmasada artık program aralarında açıklama veriyorum. 3) AMOS 1.3, AMOS'un geliştirilmiş yeni bir versiyonu. İçinde normal AMOS disketinde olmayan programlar ve yeni birkaç komut var. 4) AMOS Compiler, AMOS programlarını makine dili yapmaya yarar.Programı yükledikten sonra yukarıdaki ikonlara basarak,Compile işlemini hangi birimden hangi birime ve hangi formatta yapacağını ayarlarsın. Bunları ayarladıktan sonrada ekranın ortasında solda bulunan Compile ikonuna basarak programını Compile edebilirsin. 5) Bence 1-2 ay daha çalışmalısın. Tabii bu süre zarfında bana bilmediğin konularla'ilgili bol bol soru sor. — MAHÇUP FİŞ 1) Sizden bir program yayınlamanızı istiyorum. İstediğim program öyle birşeyki, çalıştırdığınızda önce 1 İle 4 arasında (1 ve 4 dahil) random bir sayı seçiyor ve bu rakama bağlı bir alt programı çalıştırıyor (her rakamın ayrı bir programı var). 2) Bir de ekran nasıl açılır öğrenmek istiyorum. 8,16 veya 32 renk için kaç bitplane'lik ekran açmalıyım (herbiri için) . 3) Yaptığım bir icon adventure oyunda, ekranda çeşitli sprite'lar ve bir backplane var. Fakat yüklerken önce backplane sonra da sırasıyla sprite'lar yüklenip ekranda yerlerine konuyorlar. Hepsinin aynı anda görüntülenmesi için ne yapmalıyım? CENK KARAKAŞ OMAY: Ooo köşemize yeni bir okuyucu daha katılmış. Havai fişekleri , atılsın, şampanyalar patlasın, çal oynasın . Neyse, inşallah geleceğin programcıları ordusu gittikçe büyüyecek ve ilerde oyun yapabilen bir hale gelecek. 1) İlk programa bir göz at. Sanırım aradığını bulacaksın. 2) Konumuz AMOS Cenk, Assembler ile uğraşmıyoruz.Kaç bitplane'lik ekran açmalıyım gibi bir soruya gerek yok. Her şey kolayca komutlarla hallediyor. Şimdi sana ekran açma komutunun paremetrelerini yazıyorum: Screen Open <Ekran No>, <X koor.>, <Y koor.>, <Renk sayısı>, <Modu> 3) Şimdi bu senin arkaplana yani background'a backplane demene bağlı. Eğer benim anladığım gibi bir İFF resimle Sprite'ları aynı anda görüntülemek istiyorsan ilk önce Sprite'ları yükle ama görüntüleme. Sonra IFF resmi yükle ve Sprite'ları üzerinde resmi yükledikten sonra Sprite'ları üzerinde göstermen çok kısa süreceğinden hepsi aynı anda görüntülenmiş gibi olacaktır. ZITUS 1) Resmi Spack komutuyla Listbank'a attığım zaman onu Unpack yapıyorum ve sol üst köşede Cursor İşareti İşareti gözüküyor. Bundan kurtulmak için ne yapmalıyım? 2) AMOS'ta İnterrupt yokmudur? 3) IBM uyumluluk için bazı Software'lar mevcut. İşe yarar mı sence? 4) AMOS Compiler'da kendi yaptığım programları Compile edemiyorum. Compile etmek istediğimde Program Not Tested yazıyor. 5) AMOS Compiler'da Compile edilen programı nasıl otomatik olarak CLI'den çalıştırabilirim? 6) Blitz Basic hakıında senle yazışabilirmiyim? ZİYA AŞKAR OMAY: Yine beni yanlız bırakmayacağını biliyordum Ziya, sağol. Bu ay bayağı soru sormuşsun.Şimdi adres problemini kökünden halletmek istiyorsan sen mektuplarını bu yazının sonundaki adrese yaz. A Takımına baktım. Bazı problemleri olmasına rağmen yinede ilk adventure denemen olduğu için iyi sayılır Ben sana yapman gereken birkaç şey söyliyeyim.