Bonjour à tous,
voici ce que j'utilise :
- une résolution 800*600
- des sprites ( couleurs différentes ) de 40*40 ( 6 sprites en tout )
mon but est le suivant :
Afficher un sprite tous les 40 pixels ( une fois arrivé a 20 on saute une ligne )
800/40 = 20.
L'algo n'est pas vraiment un problème par contre, je n'arrive pas à appréhender le fait que je dois jongler entre la méthode LoadContent et la méthode Draw().
Afficher un sprite et le faire bouger n'est pas un problème.
J'aimerai avoir votre avis sur la question, comme vous envisagez ça.
J'utilise cette fonction pour récup les noms des fichiers.
Voilà ma fonction LoadContent
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 private List<string> SpriteList() { string[] filePaths = Directory.GetFiles(@"gfx/", "*.png"); List<string> listFichier = new List<string>(); for (int n = 0; n <= filePaths.Length - 1; n++) { listFichier.Add(Path.GetFileNameWithoutExtension(filePaths[n])); } return listFichier; }
Voila ma fonction Draw
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); // TODO: use this.Content to load your game content here foreach (string monSprite in listesprite) { sprite = Content.Load<Texture2D>("gfx\\" + monSprite); } }
Encore une fois l'algo n'est pas en cause, c'est la structure que je n'arrive pas à visualiser ( je suis un newbie en xna ).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.CornflowerBlue); // TODO: Add your drawing code here spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend); foreach ( string monSprite in listesprite ) { spriteBatch.Draw(sprite, rec, Color.White); // l'idée serai d'incrementer le rec.X, un truc du style rec.X = rec.X +40; } spriteBatch.End(); base.Draw(gameTime); }
Si qq'un pourrait me tendre la main ça serait sympa !
Merci pour vos réponses futures.
Partager