Amiga Dünyası sayı 25, sayfa 16

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 16

int xo|NSTARSI, windef.Screen — ser; if z OpenWindow (&windef))) | long seed: printf painted closestuffO; | — -> RastPort);

int magic, in register int i, İz:

CUCET GENBANO),

inc-6;

openstuff (): SetRast(rp, OL); -> ViewPort), OL, OL, OL, ÖL); SetRGBA (&(ser -> ViewPort), IL, ISL, I5L, 15L);

for i<NSTARS: i4-4) point(i); int result — 90 ma " Tong *DateStampı while(1) |

for i<NSTARS: | ç if (seed — OL) | if ((zli) — ine) <- DateStamp (datevec); © bü, Seed > (WORD) İ PA * mazic / 128: A > 0x800000001 ((seed << 1)»

YÜ) * iy yi 128;

- SiğAPen (Tp, Ol 0x1D872B4İL); WritePixel (rp, yoli)); else seed << if (xs <0 İl ys >255) |

pointli): return (result): |

else | SetAPen (rp, İD); | Program açıklamamıza geçelim. İlk olarak #include dosyaları WritePiygl Gr ve struct satırları işleniyor. Aradaki, xoli) xs: erir

#define NSTARS 30

if (msg = GetMsg (win -> UserPort)) satırı ile yıldız sayısını 30 tane olarak belirliyoruz. Bu sayı ile ReplyMsg (msg); oynamanız mümkün. Diğer satırlarda Screen ve Window yapıları break; belirlenerek tek plane'lik bir ekran açılıyor. Tek plane'lik bir ekranda 2 adet rengimiz mevcut. Taban rengini siyah, yazı rengimizi ise beyaz olarak main() içerisindeki SetRGB4() fonksiyonları ile tanımlıyoruz. Diğer satırlarda ise yıldız koordinatlarını ve ivmelenmek için integer olarak değişkenler kullanıyoruz. Kullanılacak olan değişkenler de tanımlandıktan sonra closeStuff() ile bütün ekran ve pencereler hazırlanıyor. register int i;

açılan window'un, çerçeve rengini zemin renk olarak se-

SetRGBA4A (&(ser > ViewPort), OL, OL, OL, OL); SetRGB4 (&(ser > ViewPort), 1L, I5L, 15L);

di Yukarıdaki satırlarda da zemin ve kalem rengi paletten seçiliyor. printf ("Intuition open failed."); Sayıların yanındaki karakteri, değerin LONG olarak değerlendirileceğini belirtiyor. "(long) 1" ile "1L" arasında bir fark yok. Her iki yazım şekli de tip değişimini sağlıyor. Diğer satırlarda yıldızlar belirlenerek bize doğru kaymaya başlıyorlar. Yıldız sayısını azalttığımızda hız biraz daha artacaktır. Window'umuzun sol üst köşesini kliklediğimizde programımız sona erecektir. Program içerisindeki rnd() fonksiyonunu, rastgele sayı üretmek için kullanıyoruz. rnd(100) verdiğimizde, fonksiyon -100 ile 100

if (!(GfxBase = OpenLibrary ("graphics.library", 0))) arasında bir sayı ile geri dönecektir. Bu alt rutini siz de kendi printf ("Can't open screen \n"); programlarınızda rahatlıkla kullanabilirsiniz. closestuff(); Programlarımız bu aylık da bu kadar. Gelecek ay C'de assembler rütinlerinin nasıl kullanıldığını sizlere göstereceğim. Şimdilik hepinize iyi AMIGA DÜNYASI 26

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