guilt92
Messages postés10Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention17 février 2006
-
11 mai 2004 à 13:36
cs_Darksheep
Messages postés69Date d'inscriptionsamedi 4 novembre 2000StatutMembreDernière intervention15 septembre 2009
-
19 janv. 2006 à 18:43
Bonjour,
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..)
noSnoR
Messages postés62Date d'inscriptionsamedi 5 mars 2005StatutMembreDernière intervention11 avril 2006 29 déc. 2005 à 17:39
Je ferai ainsi :
BITMAP *buffer,*bmp1,*bmp2;
...
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 .