25.11.2014 Views

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

SHOW MORE
SHOW LESS

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...

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!