Superposition d image avec allegro

guilt92 Messages postés 10 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 17 février 2006 - 11 mai 2004 à 13:36
cs_Darksheep Messages postés 69 Date d'inscription samedi 4 novembre 2000 Statut Membre Dernière intervention 15 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..)

Merci d avance

Guilt

2 réponses

noSnoR Messages postés 62 Date d'inscription samedi 5 mars 2005 Statut Membre Dernière intervention 11 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à ^^ ).



Bref, j'espère avoir été utile ;)
0
cs_Darksheep Messages postés 69 Date d'inscription samedi 4 novembre 2000 Statut Membre Dernière intervention 15 septembre 2009
19 janv. 2006 à 18:43
Svp aidez moi j'ai aussi le même poblème :

je voudrais pouvoir faire plusieurs buffers ; buffer_map , buffer_perso ,et ensuite tout

copier dans un "total_buffer" que j'affiche à l'écran , genre :



BITMAP *total_buffer,*buffer_map,*buffer_perso ;



int main()

{

total_buffer = create_bitmap(800,600);

buffer_map = create_bitmap(800,600);

buffer_perso = create bitmap(800,600);



while(!key[KEY_ESC])//If the user hits escape, quit the program

{

blit(buffer_map ,buffer ,0,0,0,0,buffer_map->w,buffer_map->h);

blit(buffer_perso ,buffer,0,0,0,0,buffer_perso->w,buffer_perso->h);

blit(total_buffer,screen ,0,0,0,0, 800,600);

}



}

END_OF_MAIN()



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 .

Aidez Moi svp !!!
0
Rejoignez-nous