AMOS Pro
Retro bilgisayarTekrar Merhaba ! Yeniden Amos Pro ile karşınızdayım. Bu aydan itibaren daha profesyonel çalışmaya başlıyoruz, haberiniz olsun. Artık Amos Pro köşesinde komut açıklamak veya ufak efektler vermek yerine işe yaramaya çalışan programlar vereceğim. Yalnız programlar sizin yardımınızla gelişecek, yani sizden programda kullanmak için fikir ve rutinler bekliyorum. Yeri geldiğinde yine önemli gördüğüm bazı konuları ve komutları açıklayacağım. Örneğin; Bob, Dualplayfield gibi. Ama bu açıklamalar komut açıklaması halinde değil, ufak programlar içinde olacak. Ağırlık, başta belirttiğim gibi programcılıkta olacak. Sizden her konuda rutin ve fikir bekliyorum. Herhangi bir konuda yazdığınız programları bana gönderebilirsiniz. Dergide yayınlanacaktır. Bu aya kadar hiç kimse hiçbirşey göndermediğinden herhangi birşey yayınlayamadım. Bu ay ise inanılmaz birşey oldu ve bir okurdan program geldi. Yazının sonunda programı bulabilirsiniz. Demo efektleri ile ilgilenenlerin ilginç bulacaklarından eminim. M. Devrim Erdem'e programı için teşekkürler. Sanırım ilerideki sayılarda da ona ait rutinleri yazılarımda bulacaksınız.
Ve şimdi biraz haber; Amos Pro, Kickstart V3.0 makinalarda çalişmıyor. Şu anda çalışabilen tek Amos versiyonu, Amos 1.35. AGA'yı desteklediği söylenmekte, ama pek inanmayın. Çünkü, hala 1008'e 1008'lik ekran sınırı inatla korunmakta(!). Yeni blitter' ne kadar iyi kullandığı ise tartışılır Yazdığınız programlar tabi ki daha hızlı çalışıyor. Ama 3.0 makinaların en ufak modeli A1200'de bile 68020 olduğu düşünülürse bu hız makinanın getirdiği bir üstünlükmüş gibi geliyor. Amos 1.35'in ise panik içinde çıkarılmış bir versiyon olup olmadığı sorusu insanın aklına takılıyor. Hala Amos 1.30 kullananlar için bu versiyon ek bir özellik getirmekte, artık Noise Tracker modüllerini direkt Amos Bank'ı olarak alıp çalabilmesi. Yazımın içinde bu komutların kısa açıklamalarını bulabilirsiniz. İkinci haber ise bir oyunla ilgili. Türkiye'de Amos ile bir oyun daha yapıldı. UMUT TARLALARI. Uzun zamandan beri çalışmaları süren oyun geçen aydan itibaren satışa sunuldu. Tanıtımını bu sayıda bulabilirsiniz, kendilerine başarılar dilerim.
Haberler bitti. Şimdi ilk olarak Noise Tracker komutları ve ardından bu ay başlayan programımız. Track Load "Modül ismi",bank no Modülü verilen banka yükler. Track Play bank no. Verilen bank no'daki modülü çalar. Track Stop Müziği durdurur. Evet heyecanla beklediğiniz bölüme geldik. Bu ayki program ve açıklaması. Açıklamaya geçmeden belirteyim verdiğim program henüz tamamlanmış durumda değil. Başta da belirttiğim gibi programı beraber geliştireceğiz. (Eğer birşeyler göndermeye niyetlenirseniz). Program IFF resimler üzerinde çeşitli efektler yapmaya yarıyor. Bu sayıda verdiğim kısım ise sadece ikon kontrol ve bazı ikonların işlevlerinden ibaret. Ekran efektleri henüz hazır değil. Ne tip efekt yapacağıma da henüz karar vermedim, önerilerinizi bekliyorum. Program içinde daha önceden açıklamadığım bazı komutlar var. Bunların kısaca açıklamasını vermek istiyorum.
XMouse , YMouse : Mouse pointer'ının X ve Y pozisyonlarını öğrenmekte kullanılır. XScreen , YScreen : Program içinde bu komutların kullanımı Xscreen(Xmouse) şeklinde. Bu kullanım sayesinde Mouse pointer'ının ekran üzerindeki X pozisyonunu öğrenebilirsiniz. Limit Mouse X1,Y1 to X2,Y2
Mouse pointer'ının verilen koordinatlar dışına çıkmamasını sağlar. Parametre vermeden kullanırsanız. Mouse ekran boyundaki alanda sınırlanır Text X,Y, "YAZI" basar.
: Verilen ekran koordinatlarına verilen yazıyı
Bu aylık bu kadar gelecek aya sizlerden gelen önerilere ve rutinlere yer vermek isterim. Bu yüzden bana yazın veya dergiyi arayın. Kendi yaptıklarınızdan bahsedin. Varsa örnekler gönderin. Sadece oyun oynayan insanlar olmadığınızı kanıtlayan birşeyler yapın. Görüşmek üzere.
TOLGA KAHRAMAN
'* Efekt 1.00 - Amiğa Dergisi 1993 *
Dim IKONT(10,2),İKONB(10,2),IKONTEX$ (10)
Dim İKONCOL (10)
Global
İKONB () , İKONTEX$ ()
Global IKONCOL () , IKONSAY
INITPROG
MAIN
Procedure MAIN
Limit Mouse 128,243 To 448,308
Do
If Mouse Key-l
MX—X Screen(X Mouse)
BASILAN-0
For To IKONSAY
If MX>-IKONT(K,1)
If MX<-IKONB(K,1)
BASILAN—K
Exit
End If
End If
Next
If BASILAN>O
SHADEBOX(IKONT(K,1),İIKONT(K,2), '©
İKONBİK,1),
İKONTEX$(K), IKONCOL(K) |
If BASILAN-2
Limit Mouse
Limit Moüse 128,243 To 448,308
Screen To Front 0 : Screen O
İKONB(K,1),IKONB(K,2),True, Ve
IKONTEX$ (K) , (K) |
: MY-Y Sereen(Y Mouse)
and MY>-IKONT(K,2)
and MY<-—IKONB(K,2)
End If
İf BASILAN-3
Limit Mouse
SAVIFF
Limit Mouse 128,243 To 448,308
Sereen To Front O : Sereen O
SHADEBOX(IKONT(K,İ),İKONT(K,2), '©
IKONB(K,1),IKONB(K,2),True, 8
İKONTEX$ (K) , IKONCOL (K) |
End I1f
If BASILAN-7
Fade 5
Exit
End if
End If
End If
Loop
End Proc
Procedure INITPROG
Degree
Screen Open
Screen Display
Palette ie
O; O, Or
NOT: Program dökümünde kullanılan işareti sütunlarımızın darlığı yüzünden kesilen satırları belirtmektedir. Lütfen bu karakteri gördüğünüz satırda devam edin ve sonuna kadar return veya enter tuşlarına basmayın.
Curs Off Flash Off
Ink 1 : Paint 0,0
SHADEBOX(0,0,639,49,True,'”',0)
ink 3 : Set Text 6
Text 5,60,"Efekt 1.00
Set Text 0
INITIKON
BASIKON
End Proc
Change Mouse 2
Procedure INITIKON
IİKONSAY-7
For K-İ To IKONSAY
Read IKONT(K,1),IKONT(K,2)
Read IKONBİK,1),IKONBİK,2)
Read IKONTEX$ (K) , IKONCOL (K)
Next
Data 6,2,106,15,"IFfE",15
Data 6,17,106,30,"Load If£",5
Data I£f£",5
Data 118,2,184,15,"Sinus",15
Data 118,17,184,30,"xX",4d
Data
Data 580,2,630,45,"Ouit",15
End Proc
Procedure BASIKON
For K-l1 To IKONSAY
If(K/4)*4-K or K-l
SHADEBOX(İKONTİK,İ),IKONT(K,2), Ve
IKONB(K,İ),IKONB(K,2),-2, 'e
IKONTEXŞ$ (K), IKONCOL(K) |
Else
'e
IKONTEXŞ$ (K), IKONCOL (K) |
End If
Next
End Proc
Procedure ALANSEC
Gr Writing 2 : B-0
Repeat
İf Moüse Key-l
AX1İ—X Screen(X Mouse)
AYİ-Y Screen(Y Mouse)
AY2-AYI
While Mouse Key-i
Bok AXİŞAYİ To AX2,AY2
AX2-X Screen(X Mouse)
AY2-Y Screen(Y Mouse)
Box AXI,AYI To AX2,AY2
Wend
Box To AX2,AY2
GRABBED-True
If AXI>AX2 then T-AXI
İf AYI>AY2 then T-AYI
End If
Until GRABBED
Plot AXİ,AYI
:
:
Gr Writing 1
End Proc
Procedure LODIFF
resim secin")
If FİLEŞ-"" then Pop Proc
Load Iff FİLEŞ,4
End Proc
Procedure SAVIFF
if FİLEŞ<>U""
FILEŞ-Fsel$(FILEŞ,FILEŞ,"Iff resim secin")
If FILEŞ-"" then Pop Proc
Screen 4 Save Iff FILEŞ Screen 0
Else
Yuklenmis proje bulunamadi...",1)|
End If
End Proc
Procedure
Repeat Until Mouse Key-0
Screen Open 2,640,25,4,Hires
Sereen Display
Limit Moüse 128,231 To 447,240
Curs Off Flash Off
Palette $0,$BA9,$730, $FED
Cls 1
UZX-Text Length (HT$)
TXYER— (640-UZX) /2
SHADEBOX(0,0,640,24,True,"",0)|
Ink O
Text 2,9,HTŞ4*Spaceş (78)
if BUT-İ1İ
SHADEBOX(268,13,370,22,True,"Ok",0)
Repeat : Üntil Mouse
SEC-İ
Else
SHADEBOX(4,13,106,22,True,"OoOk",0|
SHADEBOX(533,13,635,22,True,"Vazgec",0)
SEC-0
Repeat
If Mouse Keys-sl
If X Moüse->130 and Y Moüse->232
If X Mouse<-180 and Y Moüse<-239
SHADEBOX(4,13,106,22, er
False,"Ok",0)
Wait 1 : SEC-İ
End If
End If
If X Moüse->394 and Y Mouse->232
If X Mouse<-445 and Y Mouse<—239
Wait 1 ; SEC-2
End If
End If
End If
Üntil
End 1f
Sereen Close 2
End ProclSEC)|
Limit Mouse
Procedure SHADEBOX
If SHADE-True then
If SHADE-False then ILKRENK-2
If SHADE<>-2
Ink IİLKRENK
Draw X1,Y1 To X2,YI
Ink SONRENK
Draw To X2,Y2
End If
Ef
Ink TXTCOL
UZX-Text Length (TXT$)
TXYER— (X14X2-UZX) /2
Text TXYER, TYYER,
End If
End Proc
SONRENK-2
SONRENK-3
Draw X1,Yi To X1,Y2
Draw X2,Y2 To
UZY-Text Base
TYYERE(Y2*YLTUZY)/2
Rem *** Mustafa Devrim Erdem ***
Screen Open 0,320,200,4,Hires
Palette 0,$FO0OF,, Degree Flash Off
Cürs Off Cls O : Hide
Screen Open 1,320,200,4,Hires
Cls 0 : Sereen Hide 1
Cürs Off
Get Palette (0
Procedure LINESİK,Y|
Screen 1 : Cls O
For To 320 Step 40
Draw X,0 To K,Y Draw X,200 To K,Y
Next
Sereen Copy 1 To 0
End Proc
Ink 1
Do
For To 360
H—50*Cos (2*3*A)
LİNES(H,YI
Next
Loop