Amiga Dünyası sayı 25, sayfa 15

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 15

STATUS (c)9.1.1992 by CENKER OZKURT */ #include <stdio.h> #include <exec/exec.h> #include <exec/execbase.h> #include <graphics/gfxbase.h> #include <intuition/intuitionbase.h> #include <exec/memory.h>

struct NewWindow windef — | 200, 0, 440, 22, WINDOWCLOSEİWINDOWDRAG , NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, WBENCHSCREEN k

struct GfxBase *GfxBase; struct İntuitionBase *IntuitionBase; struct Window *win; struct RastPort *rp;

main()

long *tloc; long *clock; long c1241; char *msg; char int ChipFree,FastFree;

IntuitionBase — OpenLibrary ("intuition.library", 0); GixBase — OpenLibrary (“graphics,library", 0); win — Open Window (&windef);

SetTaskPri(FindTask((char *) ; SetWindowTitles( win, "STATUS(c)1992 by Cenker OZKURT",0); while(1) | if (msg — GetMsg (win -> UserPort)) | ReplyMsg (msg); CloseWindow(win); CloseLibrary(GfxBase); Closelibrary(IntuitionBase); return; | time(tloc); clockzetimeltloc); strncpy(e,clock,24); ChipFree — FastFree sprintf(a,"9os CHIP-9od Movef(rp,23,18); Text(rp,a,strlen(a)); | |

Programın ilk satırlarında #include önişlem komutları ile gerekli olan makrolar ve fonksiyonlar tanımlanıyor. Struct satırlarında kullanılan yapılar belirleniyor. main() fonksiyonu içerisinde Intuition ve Graphics Library'leri açılıyor, OpenWindow() ile window'umuz hazırlanıyor ve SetTaskPri() ile çalışmaya başlayan programın task'lar arasındaki öncelik sırası belirleniyor. -128 en düşük değeri belirtiyor. Öncelik sırası -128 ile +127 arasında ayarlanabilir. Sonraki satırda aynı şekilde sonsuz döngüye giriş: GetMsg() fonksiyonu ile window'dan mesaj gelip gelmediğini kontrol ediyoruz. Window'u kapama mesajı geldiğinde 'if' bloklarına girerek programdan çıkıyoruz. Aksi takdirde alt satırlara geçilerek tarih, zaman ve hafıza durumunu öğreniyor ve window'a yazıyoruz. Bu ayki üçüncü ve son programımız da C'de kayan yıldızlar! Birçok demoda karşımıza çıkan bu yıldızları ben de C'de sizler için hazırladım. Programımız çalıştıktan sonra ekranın ortasından bize doğru yıldızlar kayacaktır. Programımızın bazı avantajları da bulunmakta. Bunların başında kayan yıldızların hızını ve sayısını ayarlamak geliyor. Bununla birlikte yıldızların hangi noktadan bize doğru geleceğini belirleyebiliyoruz. Programın mantık kısmını anlamayı size bırakıyorum. Eğer bunu anlayabilirseniz yıldızları tersine sizden uzaklaştırabilirsiniz. Şimdi programımızı inceleyebiliriz:

We TDI

Programming by Cenker OZKURT */

#include <exec/types.h> #include <intuition/intuition.h> #include <graphics/gfxbase.h>

#define NSTARS 30

struct IntuitionBase *IntuitionBase; struct GixBase *GfxBase;

struct NewScreen serdef — | 0, 0, 320, 256, 1, /* #planes */ <A, -1, NULL, CUSTOMSCREEN, NULL, NULL, NULL, NULL Kk

struct windef — | 0, 0, 320, 256, A, A1, CLOSEWINDOW, WINDOWCLOSE, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, CUSTOMSCREEN k

struct Window *win; struct Screen struct RastPort *rp; int xİNSTARSI), yINSTARSI), zİNSTARSI;

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