je voudrais savoir si il est possible lorsque l'on programme avec Allegro de "supersposer" des bitmaps, c'est a dire en fait que je voudrais pouvoir afficher un bitmap par dessus un autre et pouvoir le faire disparaitre a tout moment sans que cela influe sur le bitmap d'en dessous (c'est a dire que si certaines choses on ete faite par l'utilisateur avant que le nouveau bmp s affiche elle ne seront pas perdues..)
buffer = create_bitmap(320,240); // En fonction de ta resolution...
bmp1 = load_bitmap("bmp1.tif",NULL); //TIF juste pour l'exemple, de même que ce pourrait être en bmp...
bmp2 = load_bitmap("bmp2.bmp",NULL);
while(! key[KEY_ESC])
{
clear_bitmap(buffer);
blit(bmp1,buffer,0,0,x,y,bmp1->w,bmp1->h);
blit(bmp2,buffer,0,0,x,y,bmp2->w,bmp2->h);
/*
Les coordonnées x et y doivent être egales, ainsi la bitmap copiée
l'est au même endroit que la seconde... il me semble qu'ainsi bmp2 est
au dessus de bmp1... Pour la transparence, voir les fonctions
fade_in();/fade_out(); (Jamais utilisées, je decouvre)...
*/
blit(buffer,screen,0,0,0,0,buffer->w,buffer->h);
}
Je ne promet rien, mais je crois que c'est juste... Je suis debutant, en prog et en allegro, alors bon...
Je ne sais pas si faire
draw_sprite(buffer,bmp1,x,y);
draw_sprite(buffer,bmp2,x,y);
eut été mieux, je ne suis pas renseigné quant à la vitesse d'execution
de ces fonction, ainsi que leur demande en ressource systeme (je dois
m'avancer pas mal là ^^ ).
Pourtant cela ne marche pas , j'aimerais que tous ces buffers soit
supperposé à lécran , malheureusement le buffer_perso bouffe celui du
buffer_map et a l'écran ne s'affiche que le perso ! j'ai essayé
de mettre en commentaire le blit blit(buffer_perso
,buffer,0,0,0,0,buffer_perso->w,buffer_perso->h); et bien sur la
map s'est affichée à l'écran .