Ö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