Désole pour l’attente, mais j’ai commencé mon stage il y a deux semaines et j’ai eu pas mal de taff. Nous voila donc parti pour la troisième partie de ce tutorial, et nous allons maintenant implémenter un élément oh combien important dans un jeu vidéo : les méchants ^^. Dans le cas du froger ce sont juste des ennemis qui déboulent de chaque cote de l’écran pour essayer de vous écraser, mais nous allons essayer de faire en sorte de varier leur vitesse afin de ne pas faire un jeu trop ennuyant.

C’est parti, tout d’abord créer votre classe ennemie, je ne vous réexplique pas comment faire, je pense que vous avez compris (et sinon retournez bosser les tutos précédant petit garnement ^^). Les principales nouveautés vont être tout d’abord que les ennemis se déplaceront d’eux-mêmes et oui ce sont des sales bêtes ^^.

Commençons par nous attaquer au constructeur de notre classe ennemy il sera de la forme suivante :

public Ennemy(Froger game, GraphicsDeviceManager graphics, ContentManager content, int coordx, int coordy, float vit, string dir)
    : base(game)
{
    this.game = game;
    this.m_graphics = graphics;
    this.m_content = content;
    pospers.Y = coordy;
    pospers.X = coordx;
    direction = dir;
    vitesse = vit / 2;
    if (dir == "g")
    {
        posInit.X = m_graphics.PreferredBackBufferWidth;
    }
    if (dir == "d")
    {
        vitesse = (-vitesse);
        posInit.X = 0;
    }
}

Les principales différences avec le constructeur de notre classe héros sont les suivantes. Tout d’abord, nous appelons notre classe avec deux coordonnées qui seront les coordonnées de départ de notre ennemi ainsi nous pourrons créer une multitude d’ennemis avec un seul constructeur de classes sans qu’ils partent tous du même endroit, ensuite nous avons un entier représentant la vitesse avec laquelle se déplacera l’ennemi et enfin une chaine de caractère permettant de savoir si notre ennemi se déplacera vers la gauche ou vers la droite.

Passons maintenant au déplacement de nos ennemis, comme nous avons vu précédemment la méthode update est la méthode qui nous permet de mettre a jour nos variables en fonction du temps, ainsi nous allons faire en sorte que les coordonnées soit mise a jour en fonction de la vitesse que nous avons choisie. Nous allons aussi tester si nos ennemis sortent de l’écran, si c’est le cas nous les renvoyons a leur position de départ ainsi il y aura toujours des ennemis pour vous barrez le chemin niark niark ^^. Voici comment faire :

pospers.X = pospers.X - (vitesse);
if (direction == "g")
{
    if (pospers.X < 0 - SpriteWidth)
        pospers.X = posInit.X;
}
if (direction == "d")
{
    if (pospers.X > m_graphics.PreferredBackBufferWidth + SpriteWidth)
        pospers.X = posInit.X;
}

Nous allons aussi animer nos ennemis, mais comme la méthode est la même que précédemment je ne vais pas vous réexpliquer au pire si vous ne voyez pas comment faire vous pouvez vous aider de l’archive à la fin du post.

N’oubliez pas d’initialiser vos ennemis, vous pourrez voir dans l’archive que comme il y en a beaucoup j’ai utilisé une fonction pour les regrouper, en y repensant cette méthode n’est pas trés propre vous pouvez utiliser une liste d’ennemi ca sera plus efficace.

Je ne ferais pas de tuto pour le déplacement des rondins de bois vu que c’est la même méthode je vous mets donc directement le code dans l’archive finale, la classse les représentant est la classe Wood.

Je sais que ce tuto est rapide, mais je ne pense pas qu’il soit nécessaire de tout reprendre à chaque fois. Et si vous avez des questions,s’il y a des choses pas claires, n’hésitez pas à demander les commentaires sont la pour ça.