LIBSPRITE

Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 - 2 août 2003 à 10:46
flashbios Messages postés 1 Date d'inscription mardi 14 octobre 2003 Statut Membre Dernière intervention 15 octobre 2003 - 15 oct. 2003 à 08:13
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/11162-libsprite

flashbios Messages postés 1 Date d'inscription mardi 14 octobre 2003 Statut Membre Dernière intervention 15 octobre 2003
15 oct. 2003 à 08:13
HEEEEEEEEEEELp
Je suis tout nouveau,je commence juste la programation et je comprend absuolument pas comment on doit faire avec ton source.
Pouriez vous m'indiquer comment faire simplement merci.
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
18 août 2003 à 16:26
Ah ok, donc ça reste possible mais il faut utiliser le colorkeying, et apparement c'est ta lib qui s'en charge. Ben c'est cool ;)

PS : de rien ;)
sebseb42 Messages postés 495 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 9 novembre 2007 1
18 août 2003 à 13:58
ce que je voulais dire par 24 bits, c'est que le format bmp utiliser est 24 bits, il fut un temps ou le bmp 32 bits existais, mais apparament, ca c'est perdu, enfin bref, dans OpenGL, tu doit indiquer le type de donner que tu utilise pour quil sache comment les manipuler, apres, rien ne t'empeche d'utiliser l'alpha-blending d'OpenGL, et de plus...

void sprt_use_alpha();
void sprt_dont_use_alpha();
void sprt_set_alpha_value(t_rgb *alpha, int transparency_ratio);

void sprt_blend_sprite(t_sprite *sp1, t_sprite *sp2, uchar coef);
void sprt_blend_sprite_pos(t_sprite *sp1, t_sprite *sp2, int x, int y, uchar coef);

void sprt_blend_add_sprite(t_sprite *sp1, t_sprite *sp2);
void sprt_blend_add_sprite_pos(t_sprite *sp1, t_sprite *sp2, int x, int y);

voila :)

ps : j'ai passer des super vacances, merci :)
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
18 août 2003 à 11:41
Merci de ta réponse ;)
Donc le depth c'est du 24 => pas de couche Alpha ?
C'est dommage, si on veut faire de la transparence il faut se le faire soit même en éliminant les pixels d'une certaine couleur alors :(
Et c'est clair que le BMP enregistre des données inutiles.

Ben voilà, c'est tout ce que j'ai à dire :)
J'espère que t'as passé de bonnes vacances ;)
sebseb42 Messages postés 495 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 9 novembre 2007 1
17 août 2003 à 14:48
salut Funto66, tout d'abbord dsl de pas avoir repondu avant mais j'etais en vacances :)

pour l'affichage, je suis pas sure d'ecrire une fonction de se genre car il y a plusieures manieres d'afficher des texture en OpenGL, par exemple par un drawpixel brut, ou alos sur un objet Quad ou autres...

enfin j'ecrirais peut-etre les deux fonctions oui, pourquoi pas :)
mais sinon dans la structure t_sprite, il y a le champs sprite (uchar *sprite) et ceci est le data de texture utilisable directement comme ca par OpenGL, par exemple si tu veux binder une texture, OpenGL n'aura besoin que de la largeur, la hauteur, et le data, dans la structure, tu as le w (width -> largeur) et h (height -> largeur) et sprite qui est le data... si jamais il te demande le depth (nombres de bit par pixels) et la, c'est que du 24 :)

sinon pour l'exemple, ca va etre un peu chaud etant donner que les plusieurs fonctions offre pas mal de possibililter, je peux pas tout montrer

mais sinon, si deja tu veux faire des test, tu peux faire des nouveaux sprites en en manipulant d'autres, et ensuite tu faire sprt_write_sprite_to_bmp et ensuite, bah tu peux visualiser ton sprite avec un viewer d'image :)

aussi la fonction sprt_load_sprite_from_sprt, bah c'est pour loader une image que tu aurais enregistrer au format sprt via la fonction sprt_write_sprite_to_sprt, c'est tout, mais l'avantage de ca, c'est que sprt_write_sprite_to_sprt va bcp plus vite que sprt_write_sprite_to_bmp car j'ecarte maintes infos non necessaire, et donc ensuite forcement, le chargement via sprt_load_sprite_from_sprt va aussi bcp plus vite car je ne charge que le stricte necessaire...

le resultat est exactment le meme ensuite, les sprites contienent strictement les meme donnes, que ce soit loader/writer depuis un bmp/sprt

voila, en esperant avoir pu t'aider :)

si il y a d'autres questions, surtout n'hesitez pas :)
merci a vous :)
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
4 août 2003 à 09:48
Merci HeeroYuhi ;)
HeeroYuhi Messages postés 8 Date d'inscription mercredi 20 mars 2002 Statut Membre Dernière intervention 21 février 2008
3 août 2003 à 17:03
funto66,

pour cree un .lib avec Visual C++ 6 tu fai nouveau projet, tu choisi Win32 Static Library, tu met le nom du projet et tu clique sur OK.
Dans la fenetre qui apparait tu coche les options que tu veu.
ensuite tu insert un .cpp dans ton projet.
voila il ne te reste plus qu'a compiler ton code et tu obtient un .lib.
Pense a mettre le(s) .h necessaires au programmeur qui utilisera ta librairie(insertion des fichiers d'entete).
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
2 août 2003 à 10:49
Ah oui, j'ai oublié : ce serait sympa de mettre un exemple d'utilisation aussi ;)
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
2 août 2003 à 10:46
Salut sebseb42,
ta lib a l'air sympa, mais... ça s'utilise comment ? J'ai rien vu pour ce qui est de l'affichage, c'est à nous de l'afficher en utilisant un t_sprite*, c'est ça ?
Ca serait sympa de rajouter une fonction du genre :
void sprt_draw_GL_sprt(t_sprite* sprite);
qui dessine le sprite avec OpenGL.
Voilà voilà, c'est un code vachement sympa sinon :)
Le truc que j'aie pas compris, c'est à quoi sert sprt_load_sprite_from_sprt().
STP, tu peux me dire comment on fait pour créer un .lib ? Merci.
Rejoignez-nous