nounours21_6
Messages postés255Date d'inscriptionmercredi 3 novembre 2004StatutMembreDernière intervention21 avril 2009
-
27 févr. 2007 à 11:49
Sirel976 -
4 janv. 2014 à 18:38
Bonjour tout le monde,
je dévoloppe un jeu 2D, un labyrinthe, en C# .NET2 sous visual studio 2005
et je dois faire l'animation du petit bonhomme avec une image de ce style :
J'ai vu qu'il faut utiliser un sprite,
le principe est de diviser l'image en plusieurs cellules (12 pour l'exemple) et d'afficher une cellule en fonction du besoin!
mais c'est la que je bloque, je ne sais comment faire pour créer un sprite, et l'utiliser...
MasterShadows
Messages postés268Date d'inscriptionlundi 1 mars 2004StatutMembreDernière intervention19 avril 201212 27 févr. 2007 à 16:14
Ben en fait suivant la méthode que l'on prend, on se fiche de savoir combien d'images il y'a à afficher, je vais te donner ma méthode (mode XNA : ON)
Tout d'abord on va créer quelques variables :
int m_iNbFramesWidth; // Nombre d'images dans la largeur de la texture (ici 4)
int m_iNbFramesHeight; // Nombre d'images dans la hauteur de la texture (ici 4)
int m_iFrameWidth; // largeur d'une image
int m_iframeHeight; // Hauteur d'une image
Rectangle m_rcSource; // Pour que l'on connaisse l'image à afficher
Texture2D m_txSprite; // Pour la création du sprite
int m_iCurrentSprite; // Sprite actuel à afficher
// Ensuite une propriété
public int CurrentSprite
{
get { return m_iCurrentSprite; }
set { m_iCurrentSprite = value; }
}
// Ensuite le ctor
public CSprite(Texture2D tex, int NbFramesWidth, int NbFramesHeight)
{
m_txSprite = tex;
m_iNbFramesWidth = NbFramesWidth;
m_iNbFramesHeight = NbFramesHeight;
m_iFrameWidth = m_txSprite.Width / m_iNbFramesWidth;
m_iFrameHeight = m_txSprite.Height / m_iNbFramesHeight;
}
et ensuite dans ta méthode de dessin (bon là on considère qu'on le place dans une position par défaut, le but c'est d'afficher l'image que tu veux):
nounours21_6
Messages postés255Date d'inscriptionmercredi 3 novembre 2004StatutMembreDernière intervention21 avril 2009 27 févr. 2007 à 16:29
merci bien, je vais voire ce que je peux faire avec... lol
il faut importer quoi comme référence? car il y a une erreur sur Texture2D!
sinon, j'utilise une PictureBox, elle se déplace normalement dans le labyrinthe
et est-ce que je peux m'en servir?
par exemple : this.maPB.image = sb.draw()
ou un truc comme ca?
Merci pour ta source
Enjoy @+
<<--<<--nOUnoURs-->>-->>
MasterShadows
Messages postés268Date d'inscriptionlundi 1 mars 2004StatutMembreDernière intervention19 avril 201212 27 févr. 2007 à 16:45
Ben en fait ma source est du XNA il faut donc importer la réference Microsoft.XNA.Framework, par contre tu utilise une picturebox donc c'est du GDI, alors là je ne peux pas t'aider (mais la formule m_rcSource tu peux t'en servir)