Class sprite avec sdl

Soyez le premier à donner votre avis sur cette source.

Vue 7 583 fois - Téléchargée 867 fois

Description

cette class permet de gère les sprites, avec la gestion des collisions.
si vous avez des idées pour améliorer ou ajouter des fonctions, se serait simpas de le dire.

j'ai développé cette class dans le but de me faciliter la gestion des images dans mes application graphique future.

je ne suis contre aucune critique tant qu'elle sont constructives.

Conclusion :


pour info la collision cercle-boite, ne fonctionnent pas très bien, si quelqu'un a une idée qu'il le dise.

pour les fautes je m'excuse d'avance, mais moi et l'orthographe ça fait 3, si ce n'est pas plus.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Insomniakk
Messages postés
2
Date d'inscription
lundi 27 novembre 2000
Statut
Membre
Dernière intervention
18 septembre 2005

Bon, c'est bon, ça ne bug plus... (étrange...)

Ce qu'il manque dans ta classe, c'est un systeme de frame !
Insomniakk
Messages postés
2
Date d'inscription
lundi 27 novembre 2000
Statut
Membre
Dernière intervention
18 septembre 2005

J'ai fait ça pour tester la classe:

sprit.SetPos(1, xsouris, ysouris);
sprit.affich(screen, -1);

Mais ça plante... Il me dit que c'est une erreur de segemntation...
cs_Kirua
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008

Hmmm, parce que j'ai jamais fait ça, ça peut répondre à ta question ;) je parle plus par procuration que par expérience à vrai dire.
Par contre pour les gestionnaires de ressources, c'est pas bien méchant: tu as une classe Manager qui donne des "handle" sur les ressources à la demande et qui compte le nombre de handle qu'elle a donné. Si on demande une ressource qui n'existe pas, elle est créée (chargée), et si elle existait déjà, on retourne simplement un handle sur celle existante.
Quand un handle est détruit (appel du destructeur de celui-ci), il le dit à son manager "père". Quand le nombre de handles dans la nature d'une ressource est à 0, c'est que plus personne ne l'utilise: on la libère.

Il y a moyen de faire qq ch d'assez beau et de très générique avec un peu d'héritage et de template, pour pouvoir gérer avec le même set de classes des polices, des textures, des sons, des musiques, des scripts ...

L'idée pour l'utilisation ici, ce serait simplement d'avoir un manager qui centralise le chargement des textures et des masques, et qui s'occupe de fournir des handle sur tout ce beau monde: ça réduit drastiquement les temps de chargement!

Quant à la définition du handle, c'est le seul truc compliqué et ça dépend assez fort de l'usage que vous avez de la chose, et de la souplesse que vous voulez y donner. Ça peut être un pointeur sur la ressource possédée par le manager, ça peut être une instance de classe qui possède toutes les infos, copiées depuis la ressource, ça peut être une référence ...
MoDDiB
Messages postés
546
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
4 mai 2007
1
Hey kirua pourquoi tu nous ferais pas un tuto la dessus avec le .tga ? :)
cs_Kirua
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008

à mon avis tu dois sauver avec l'image (et séparer l'image du sprite, car les images sont des ressources communes, tu peux avoir plusieurs sprites qui exploitent la même image, et donc le même masque) un tableau de bits ou de booléens qui constituent le masque. tu le constitues au chargement de l'image (qui doit être unique et centralisé), et pr le fabriquer, beeeen, ça dépend de tes images! avec du targa (tga) il y a un octet alpha, avec les bmp il te faut soit un masque supplémentaire soit connaître la couleur ... à toi de définir! pas easy, je sais bien.

l'idéal, ce serait un gestionnaire de ressources qui donne accès aux images à la demande, et comme ça les sprites ne se soucient pas de savoir ça: c'est géré à part.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.