Précédent   Forum du club des développeurs et IT Pro > Applications > Développement 2D, 3D et Jeux > Moteurs de jeux vidéo > XNA
XNA Forum d'entraide sur le développement avec XNA
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 17/12/2012, 18h38   #1
Lyofen
Invité de passage
 
Homme
Développeur de jeux vidéo
Inscription : juillet 2012
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur de jeux vidéo

Informations forums :
Inscription : juillet 2012
Messages : 10
Points : 4
Points : 4
Par défaut Changer la couleur d'un pixel d'une texture 2D

Bonsoir,

Je fais appel à vous pour un petit problème où les habitués de XNA pourront m'aider rapidement je pense, j'essais simplement de changer la couleur de quelques pixels d'une texture2D :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
map = Content.Load<Texture2D>("map");
 
Color[] c = new Color[map.Width * map.Height];
map.GetData(c);
 
for (int x = 0; x < c.Length; x++)
{
   if (x < (c.Length/2))
      c[x] = Color.Red;
   else
      c[x] = Color.Blue;
}
 
map.SetData(c);
Donc ce que j'essais de faire c'est juste de mettre la première moitié des pixels en rouge et la deuxième en bleu, mais la texture s'affiche entièrement en bleu et je ne vois pas pourquoi... ma texture de base est toute verte et de taille 128*128.

P.S : Je tiens à récupérer toute ma texture dans un tableau de color afin de pouvoir travailler autrement dessus par la suite.

Donc en attendant une réponse je poursuis mes recherches, et je ferai signe si je trouve quelque chose, merci d'avance !
Lyofen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2012, 14h29   #2
dancingmad
Membre habitué
 
Homme Martin Bousquet
Développeur de jeux vidéo
Inscription : octobre 2008
Messages : 93
Détails du profil
Informations personnelles :
Nom : Homme Martin Bousquet
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur de jeux vidéo

Informations forums :
Inscription : octobre 2008
Messages : 93
Points : 108
Points : 108
Bonjour,

le code marche très bien chez moi, j'ai bien une texture bleue et rouge à l'écran. Je dirais qu'il y a peut-être un problème avec le rendu, peut-tu poster le code qui affiche ta texture à l'écran ?
dancingmad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2012, 14h43   #3
Lyofen
Invité de passage
 
Homme
Développeur de jeux vidéo
Inscription : juillet 2012
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur de jeux vidéo

Informations forums :
Inscription : juillet 2012
Messages : 10
Points : 4
Points : 4
Salut, merci de prendre le temps de m'aider, alors pour la partie draw :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
protected override void Draw(GameTime gameTime)
{
   GraphicsDevice.Clear(Color.CornflowerBlue);
 
   // TODO: Add your drawing code here
   spriteBatch.Begin();
 
   spriteBatch.Draw(map, new Vector2(0, 0), null, Color.White,0.0f,new Vector2(map.Width / 2, map.Height / 2), 1.0f, SpriteEffects.None, 0);
 
   spriteBatch.End();
 
   base.Draw(gameTime);
}
Après la partie de code que j'ai montré précédement pour changer les couleurs, je l'ai mis dans la foncton "LoadContent" juste après l'initialisation de la texture, j'ai pas mis dans la fonction "Initialize" car la texture n'est pas chargée à ce moment mais c'est ptetre ça qui va pas..
Lyofen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2012, 15h06   #4
dancingmad
Membre habitué
 
Homme Martin Bousquet
Développeur de jeux vidéo
Inscription : octobre 2008
Messages : 93
Détails du profil
Informations personnelles :
Nom : Homme Martin Bousquet
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur de jeux vidéo

Informations forums :
Inscription : octobre 2008
Messages : 93
Points : 108
Points : 108
Dans le code du spriteBatch.Draw, tu affiche la texture en (0,0), avec comme origine le centre de la texture (Width/2, Height/2), donc à l'écran, on ne voit que le quart bas-droit de ta texture, qui est bleu.

Change l'argument :

Code :
new Vector2(map.Width / 2, map.Height / 2)
en

ça résoudra ton problème
dancingmad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2012, 15h27   #5
Lyofen
Invité de passage
 
Homme
Développeur de jeux vidéo
Inscription : juillet 2012
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur de jeux vidéo

Informations forums :
Inscription : juillet 2012
Messages : 10
Points : 4
Points : 4
Oui effectivement fallait pas chercher bien loin x') ça m'apprendra à copier-coller mon code même pour tester certains trucs, merci beaucoup pour ton aide !
Lyofen est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 00h09.


 
 
 
 
Partenaires

Hébergement Web