GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture)...

34
GRAPHISME PAR ORDINATEUR SIF-1032

Transcript of GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture)...

Page 1: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

GRAPHISME PAR ORDINATEUR

SIF-1032

Page 2: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Contenu du cours 10• Graphisme 2D (SpriteBatch, texture)

– SpriteBatch (utilisation de la classe SpriteBatch)– Textures multiples (animation 2D)– Rotation de textures– Superposition et transparence de textures– Engin de particules

Page 3: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Graphisme 2D (SpriteBatch, texture)

• La classe SpriteBatch peut être utilisée pour introduire et animer des textures dans une scène. Les textures 2D sont en fait des images 2D qui peuvent être insérées dans notre scène

• Pour permettre l’utilisation de textures il faut d’abord réserver l’espace pour stocker les images 2D par ces déclarations dans la classe de notre jeu:

• Ensuite nous pouvons charger nos textures dans la méthode LoadContent():

Page 4: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Graphisme 2D (SpriteBatch, texture)

• Déclaration d’une classe SpriteBatch et instantiation de la classe SpriteBatch dans la méthode LoadContent()

• Pour dessiner une texture avec la méthode Draw() de la classe SpriteBatch appelée dans la méthode Draw() de notre jeu:

Page 5: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Graphisme 2D (SpriteBatch, texture)

• Affichage du background

Page 6: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Graphisme 2D (SpriteBatch, texture)

• Ajout d’autres textures en utilisant un mode d’affichage différent

Page 7: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Graphisme 2D (SpriteBatch, texture)

• Ajout d’autres textures en utilisant un mode d’affichage différent (Affichage)

Page 8: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Graphisme 2D (SpriteBatch, texture)

• Nous pouvons animer des objets 2D en utilisant différentes images du même objet à des positions différentes que nous affichons ensuite en séquence. Une série d’images du même objet peut être associée à un atlas de textures. Un atlas de textures est une grande image de toutes les textures impliquées dans l’animation

Page 9: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Graphisme 2D (SpriteBatch, texture)

• Pour créer une animation à partir d’un atlas de textures nous devons d’abord créer une nouvelle classe (ex: AnimatedSprite.cs)

• Ajout des énoncés using suivants:

• Ajout des variables d’instance:

Page 10: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Graphisme 2D (SpriteBatch, texture)

• Code de la méthode Update():

• Code la méthode Draw():

• width et height sont les largeur et hauteur de la texture

• Columns et Rows la largeur et hauteur de l’atlas de texture

• row et colomn les indices de la texture dans l’atlas

Page 11: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Graphisme 2D (SpriteBatch, texture)

• Code de la classe AnimatedSprite:

Page 12: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Graphisme 2D (SpriteBatch, texture)

• Utilisation de la classe AnimatedSprite (Insertion dans la classe principale de notre jeu)

• Chargement de l’atlas de texture et instantiation de la classe AnimatedSprite

• Mise à jour de la texture (sélection de la texture) par la méthode Update() de la classe AnimatedSprite

• Appel de la méthode Draw() de la classe AnimatedSprite

Page 13: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Graphisme 2D (SpriteBatch, texture)

• Affichage de l’atlas de textures

Page 14: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Graphisme 2D (SpriteBatch, texture)

• Code de l’application

Page 15: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Graphisme 2D (SpriteBatch, texture)

• Code de l’application (suite…)

Page 16: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Graphisme 2D (SpriteBatch, texture)

• Si nous voulons faire la rotation d’un texture, nous pourrions ajouter à la section déclaration de notre classe principale

• Charger la texture dans la méthode LoadContent()

• Faire la mise-à-jour de l’angle dans la méthode Update()

Page 17: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Graphisme 2D (SpriteBatch, texture)

• Affichage d’une texture avec une rotation avec la méthode Draw()

Page 18: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Graphisme 2D (SpriteBatch, texture)

• Les effets de superposition de couleur et de transparence permettent de superposer des objets. Si nous utilisons un modèle de superposition additif nous pourrions avoir comme mélange de couleur:

Page 19: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Graphisme 2D (SpriteBatch, texture)

• Création et Chargement de textures permettant la superposition de couleur (exemple)

• Pour permettre le mouvement de ces textures

Page 20: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Graphisme 2D (SpriteBatch, texture)

• Mise-à-jour des angles (Update()) et positions des textures et affichage des textures (Draw())

Page 21: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Graphisme 2D (SpriteBatch, texture)

• Affichage de textures superposées

Page 22: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Graphisme 2D (SpriteBatch, texture)

• Création d’un engin de particules, création d’une classe Particule, déclaration des variables d’instance de cette classe

Page 23: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Graphisme 2D (SpriteBatch, texture)

• Classe Particule, méthode Update(), méthode Draw()

• Une particule se déplace et subit une rotation ainsi qu’une durée de vie décroissante (TTL--)

Page 24: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Graphisme 2D (SpriteBatch, texture)

• Code la classe Particule

Page 25: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Graphisme 2D (SpriteBatch, texture)

• Création d’un engin de particules, création d’une classe ParticuleEngine, déclaration des variables d’instance de cette classe, code du constructeur de cette classe

Page 26: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Graphisme 2D (SpriteBatch, texture)

• Code du générateur de particule de la classe ParticuleEngine

Page 27: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Graphisme 2D (SpriteBatch, texture)

• Code de la méthode Update() de la classe ParticuleEngine

Page 28: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Graphisme 2D (SpriteBatch, texture)

• Code de la méthode Draw() de la classe ParticuleEngine

Page 29: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Graphisme 2D (SpriteBatch, texture)

• Code complet de la classe ParticuleEngine

Page 30: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Graphisme 2D (SpriteBatch, texture)

• Code complet de la classe ParticuleEngine (suite …)

Page 31: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Graphisme 2D (SpriteBatch, texture)

• Création d’une instance de la classe ParticuleEngine , chargement des textures (particules) par la méthode LoadContent(), mise-à-jour du générateur de particules dans la méthode Update():

Page 32: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Graphisme 2D (SpriteBatch, texture)

• Affichage découlant de l’exécution du générateur de particules

Page 33: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Graphisme 2D (SpriteBatch, texture)

• Code complet du jeu

Page 34: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Graphisme 2D (SpriteBatch, texture) –SpriteBatch (utilisation de la classe SpriteBatch) –Textures.

Graphisme 2D (SpriteBatch, texture)

• Code complet du jeu (suite …)