Amiga Dunyasi - Sayi 21 (Subat 1992).pdf - Retro Dergi
Amiga Dunyasi - Sayi 21 (Subat 1992).pdf - Retro Dergi
Amiga Dunyasi - Sayi 21 (Subat 1992).pdf - Retro Dergi
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Merhaba arkadaşlar. Bu ayki yazımızda geçen ayki programa<br />
bir user interface hazırlamaya başlıyoruz. İlk olarak aşağıdaki<br />
programı bir inceleyelim:<br />
Rem *************** ***************<br />
Rem ** AMIGA DÜNYASI **<br />
Rem ** AMOS Demo Program **<br />
Rem ** Written by **<br />
Rem ** Burak Ozdemir . **<br />
Rem** AMOS Copyright 1990 **<br />
Rem ** Mandarin/Jawx **<br />
Rem ** **<br />
Rem *************** ***************<br />
Reserve Zone 64<br />
Ink 0<br />
For 1=0 To 7<br />
For F=0 To 7<br />
Set Zone I+8*F+1,I*20,F*20 To(I+l)*20,(F+l)*20<br />
Box I*20,F*20To(I+l)*20,(F+l)*20<br />
Next F<br />
Next I<br />
Do<br />
Flash Off<br />
Curs Off<br />
T=Zone(X Screen(X Mouse),Y Screen(Y Mouse))<br />
R=Int((T-l)/8)<br />
C=T-8*R-1<br />
If(Mouse Key>0 and T0) Then SETPIX<br />
If(Mouse Key>0 and T=0) Then Exit<br />
Locate 0,22<br />
Print "Zone ";T;" Row , ";R;" Column ";C; " "<br />
Loop<br />
Procedure SETPIX<br />
If Mouse Key=l Then Ink 2<br />
If Mouse Key=2 Then Ink 1<br />
X=X Screen(X Mouse)<br />
Y=Y Screen(Y Mouse)<br />
Paint X,Y,0<br />
End Proc<br />
Bu program ekrana 8X8'lik bir grid (ağ) açar ve mouse yardımıyla<br />
burada şekil çizmenizi sağlar. Bu program aynı zamanda<br />
ZONE komutlarının kullanımına ilişkin iyi bir örnektir. Bu komutu<br />
oyun programlarında da kullanabilirsiniz.<br />
Şimdi bu programda bazı değişiklikler yapalım ve elde ettiğimiz<br />
programı, geçen ay verdiğimiz programındaki<br />
INP_SAMPLE[S] prosedürünün yerine yazalım. Böylece prosedür<br />
aşağıdaki gibi olacaktır:<br />
Procedure INP_SAMPLE[S]<br />
Cls<br />
Locate 0,22<br />
Print "Örnek verilerini gir "<br />
Reserve Zone 64<br />
Ink 0<br />
For 1=0 To 7<br />
For F=0 To 7<br />
Set Zone I+8*F+1,I*20,F*20 To(I+l)*20,(F+l)*20<br />
Box I*20,F*20To(I+l)*20,(F+l)*20<br />
Next F<br />
Next I<br />
Do<br />
Flash Off<br />
Curs Off<br />
T=Zone(X Screen(X Mouse),Y Screen(Y Mouse))<br />
R=Int((T-l)/8)<br />
C=T-8*R-1<br />
If(Mouse Key>0 and T0) Then SETPIX[S,R,C]<br />
If(Mouse Key>0 and T=0) Then Exit<br />
Loop<br />
End Proc<br />
Rem<br />
Rem<br />
Procedure SETPIX[S,R,C]<br />
If Mouse Key=l<br />
Ink 2<br />
SMPLR(S,R*CLMNS+C)= 1<br />
End If<br />
If Mouse Key=2<br />
Ink 1<br />
SMPLR(S,R*CLMNS+C)=0<br />
End If<br />
X=X Screen(X Mouse)<br />
Y=Y Screen(Y Mouse)<br />
Paint X,Y,0<br />
End Proc<br />
Aynı programda bazı değişiklikler yaparak programın, karakterleri<br />
ekrana bastığı bölümü de değiştirebiliriz. Programın bir<br />
öncekinden iki ana farkı vardır. İlk olarak program hiçbir zaman<br />
mouse'u okumaz. Onun yerine prosedürden çıkmak için bir tuşa<br />
basmanızı bekler. Diğer bir fark da rutinin veri kaynağıdır.<br />
Şimdi programdaki SHW_SMPLR|S] prosedürünü silin ve<br />
onun yerine aşağıdaki satırları yazın:<br />
Procedure SHW_SMPLR[S]<br />
Cls<br />
Locate 0,22<br />
Print "Örnek ",S+1<br />
Ink 0<br />
For 1=0 To 7<br />
For F=0 To 7<br />
Set Zone I+8*F+1 ,I*20,F*20 To(I+1 )*20,(F+1 )*20<br />
Box I*20,F*20To(I+l)*20,(F+l)*20<br />
Next F<br />
Next I<br />
Rem<br />
For R=0 To 7<br />
For C=0 To 7<br />
PRTPIX[S,R,C]<br />
Next C<br />
Next R<br />
Wait Key<br />
End Proc<br />
Rem<br />
Rem<br />
Procedure PRTPIX[S,R,C]<br />
If SMPLR(S,R*CLMNS+C)=1 Then Ink 2<br />
IfSMPLR(S,R*CLMNS+C)=0 ThenInk 1<br />
X=C*20+10<br />
Y=R*20+10<br />
Paint X,Y,0<br />
End Proc<br />
Böylece program çok daha kolay kullanılabilir hale geldi. Geriye<br />
bir tek programın kontrol bölümü kaldı. Onu da gelecek ay<br />
değiştireceğiz. Ama merak ediyorsanız söyleyeyim, şimdikine<br />
benzer bir teknik kullanacağız.<br />
Şimdilik hoşçakalın...