Amiga Dünyası sayı 27, sayfa 44

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 44

int /* Start coordinates */ in /* Stop coordinates */

Movefscer. rastportfs),x,y); Drawf(ser. rastport|s),x,y1); Draw(scr rastport, sİ.x.y):

int s; /* Screen number */ int x,y; /* Center coordinates */ /*r*/

DrawEllipselscr. İnt number */ int x,y; /* Center coordinates */ Şiar string(40); /* String */ Movefser rastportls).x,y); Textlsor rastportis) siring,strlen(strine));

ink(s,color) ints; /* Screen number */ int color; /* ink color — */ SetAPen(ser rastport|s),color); | paper(s,color) int s; Screen number */ int color; /* paper color — SetBPeniscr. rastport|s),cg | mouse x(s) ints; /* number | mouse, y(s)

ints; /* Screen number */

Y); j

set palette(s,color,;r,g,b)

ints; /* Screen number */ int color; /* Palette color */ int r, /* RGB values */

SetRGB4(ser |

LoadIFE(s,name) ints; — /* Screen number */ namel)|; /* Picture name */

iff(name,0); printf("9os not Teturn(1);

| BİtBitMapRastPort(&info- >bitmap,0,0,scr. rastport|s),0,0,320,256,0xc0); free planes(&info->bitmap); put cmapis,(1<<info->bitmap.Depth));

|

cmap(s,n) Fat 5; ha int n;

Screen number */

Programda sık sık kullanacağımız alt rutinleri görüyorsunuz. Bu sayede bazı işlemleri yapmak oldukça kolaylaşacaktır. Şimdi programımızın içerisinde bulunan örneklerle inceleyelim.

main()

openlibrary(); opensereen(0,320,256,32);

print(0,50,50,"Amiga C"); Waitkey();

Programımız dikkat ettiyseniz oldukça kısa. Çünkü işin zor kısımları ilk vermiş olduğumuz rutinlerde mevcut. Bize kalan bu rutinleri dikkatlice kullanmak. Programı çalıştırmak için ilk olarak; compile: cc -s module.c -> Rutinlerin bulunduğu program. Bu programı bir sefer compile etmeniz yeterli olacaktır. compile; cc -s c.c -> kısa program. Yalnızca bu programı yapmış olduğunuz her değişiklikten sonra compile edin. link: ln c.o module.o jiff.o -lc32 -> Link sırasında jiff.o objesini de eklemeyi unutmayın, Çünkü rutinler içerisinde IFF yükleme rutinleri mevcut. openlibrary(); bu alt rutinle, isminden de anlaşılacağı gibi, kullanılacak olan library'leri açıyoruz. Her programımızın başına bu rutini koymak zorundayız. openscreen(); ekran açmak için kullanıyoruz. İçerisindeki parametreler sırasıyla; ekran numarası, x genişliği, y genişliği, ve renk sayısı. Ekran numarasını, birden fazla ekran kullanabilmek için kullanıyoruz. En fazla 5 adet ekran için:

Evet, ekran açmak, artık bu kadar kolay hale geldi. Sizce de öyle değil mi? print(); ile ekranımızın herhangi bir köşesine yazımızı yazıyoruz. Buradaki parametreler; ekran numarası, x noktası, y noktası ve yazı dizimiz. waitkey(); ile bir tuşa basılıncaya kadar bekliyoruz. Ve daha sonra closelibrary(); ile bütün library'leri kapayarak programdan çıkıyoruz. Program bu kadar: Sıra geldi yeni bir örneğe;

/* Programming by Cenker Ozkurt */ #include <stdio.h> main()

openscreen(0,320,256,32);

LoadIFF(0, "df0:picture"); waitmouse(); palet

closescreen(0); eloselibrary0:

alet ofE()

set LAR |

|

Resim yüklemek artık bu kadar kolay. Buradaki farklı rutin LoadIFF(); rutini. İlk parametre resmin yükleneceği ekran numarası, ikinci parametre ise doğal olarak resmimizin yeri ve ismi. Program içerisindeki paletoff(); rutini ise mouse tuşuna basıldıktan sonra parlama efekti vermemizi sağlıyor. Kullanmak zorunda değiliz. Aşağıdaki örnek ise kısa bir resim şovu!

/* Programming by Cenker Ozkurt */ main()

openscreen(0,320,256,32); openscreen( 1,320,256,32):

serfront(0);

LoadIFE(O,"di LoadIFE(1,"di

waitmouse();

serfront(1); waitmouse();

closescreen(0);

İki ekran kullanıyoruz. scrfront(ekranı) rutinini de kullanmak mümkün. Programda kullanabileceğimiz diğer alt rutinlerin kullanımı da aşağıda olduğu gibi istediğimiz ön plana alıyor. scrback(); in.

main()

openlibrat

ink(0,2); — /* Kalem rengimizi değiştiriyor */ print(0,50,50, "Amiga &

/* mouse x() ve mouse y() ile mouse koor- dinatlarini okuyoruz */ sprintf(s,'x mouses 9d y mouse 9bd x(0),mouse y(0)); while(Tleftmouse()) | inti

box(0,0,0,319,255); /* Ekrana bir kutu çizi- yoruz */ : PİKO LI. /* Nokta koymak için */ ine(0,0,0,319,255); /* Çizgi rutini */ set palette(0,0,15,15,15); /* Zeminin paleti-

"e aate" a sene u bekliye i

(0,5); int(0,

closescreen(0);

closelibrary(); Kullanabileceğimiz rutinler bunlar. Bu programa başka rutinler ekleyerek istediğinizi ya-

Pabilirsiniz. Şimdilik bu kadar. Gelecek ay buluşmak üzere Hepinize yapısal günler!...

Klavyeyle gezinmek için ← ve → tuşları.