Önce masaüstünde bir klasör açın ve adını "Allegro Sprite Denemsi" olarak değiştirin. Sonra DEV C++ editörünü açın, "Yeni Proje" diyerek "Multimedia" bölümünden "Allegro" yu seçin, masaüstüne açtığınız klasörün içine kaydedin. Son olarak aşığdaki kodları ekleyerek programınızı "Run" komutu ile çalıştırın. sprite.h dosyası ------------------------------------------------------------------------------------ #ifndef sprite_H_INCLUDED #define sprite_H_INCLUDED #include <allegro.h> enum Yon { _LEFT = 0, _RIGHT = 1, _DOWN = 2, _UP = 3 }; class Sprite { public: BITMAP *_image; int _x; int _y; Sprite(); ~Sprite(); void Draw(BITMAP*); void Move(int,int); }; #endif sprite.c dosyası ------------------------------------------------------------------------------------ #include "sprite.h" Sprite::Sprite() { _image = NULL; _x = 0; _y = 0; } Sprite::~Sprite() { if(_image != NULL) { destroy_bitmap(_image); } } void Sprite::Draw(BITMAP *__buffer) { if(_image != NULL) { acquire_screen(); clear_bitmap(__buffer); draw_sprite(__buffer, _image, _x, _y); release_screen(); } } void Sprite::Move(int yon, int speed) { switch(yon) { case (int)_LEFT: _x-=speed; break; case (int)_RIGHT: _x+=speed; break; case (int)_UP: _y-=speed; break; case (int)_DOWN: _y+=speed; break; } } main.cpp dosyası ------------------------------------------------------------------------------------ #include <allegro.h> #include "sprite.h" BITMAP *buffer; BITMAP *scr; void init(); void deinit(); int main() { init(); Sprite *spr; spr->_image = scr; spr->_x = 100; spr->_y = 100; while (!key[KEY_ESC]) { /* put your code here */ draw_sprite(screen, buffer, 0, 0); spr->Draw(buffer); if(key[KEY_LEFT]) spr->Move(0, 2); if(key[KEY_RIGHT]) spr->Move(1, 2); if(key[KEY_DOWN]) spr->Move(2, 2); if(key[KEY_UP]) spr->Move(3, 2); } deinit(); return 0; } END_OF_MAIN() void init() { int depth, res; allegro_init(); depth = desktop_color_depth(); if (depth == 0) depth = 32; set_color_depth(depth); res = set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0); if (res != 0) { allegro_message(allegro_error); exit(-1); } install_timer(); install_keyboard(); install_mouse(); /* add other initializations here */ buffer = create_bitmap(640,480); scr = load_bitmap("picture.bmp", 0); } void deinit() { clear_keybuf(); /* add other deinitializations here */ }
18 Ağustos 2008 Pazartesi
Allegro'da Sprite oluşturalım !
Kaydol:
Kayıt Yorumları (Atom)
Hiç yorum yok:
Yorum Gönder