Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3921 connectés 

 


Dernière réponse
Sujet : [Jeu] Comment coder des ennemis en C++?
janoscoder j'en avais marre de taper dans le post, et donc je t'ai mailé du code que j'ai pondu car je me suis levé trop tard et j'arrivais pas à dormir. Maintenant je suis fatigué et je vais pioncer.

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
janoscoder j'en avais marre de taper dans le post, et donc je t'ai mailé du code que j'ai pondu car je me suis levé trop tard et j'arrivais pas à dormir. Maintenant je suis fatigué et je vais pioncer.
janoscoder Il est cool de séparer l'affichage du reste, et définir pour un ennemi des actions à entreprendre, et des modes (en shoot'em up, c'est pas trop dur, dans pleins de jeux tout est prédéfini) d'action.
 
un ennemi veut attaquer et se défendre.
 
Soit un vaisseau ennemi.
Il a deux modes: agressif et défensif
 
le choix du mode peut être déterminé en fonctions de ses points de vie, et de l'armement du joueur.
 
S'il est en mode agressif, il se place à la distance optimale pour son arme et l'utilise, s'il est en défensif, il se cache dans le décors et tire quand il n'y a pas de tirs prêts.
 
dans tous les cas, s'il se prend des impacts, il se déplace.
 
Dans l'absolu, un langage de script c'est cool, mais ça demande du boulot. J'ai écrit une espèce de BASIC pour ce genre de choses, mais ça m'a pris une bonne vingtaine d'heures.
 
Donc je pense que le mieux à faire, est de définir une fonction d'affichage du vaisseau qui détemine la trame de son animation.
 
ex:
//on charge ces vectors d'un fichier
vector<Image *> shipframes;
 
 
vector<int> fireframes; //={10,11,12,13,12,11,10} par exemple
vector<int> normalship; //={0};
vector<int> moveup;     //={1,2}
vector<int>  
 
 
 
tu crées un fichier
EnnemiAffichage.alo
*****************
imagebasename=ennemipetit
imagenumber=20
imageextension=.bmp
 
MODE normal
COMMENCEMENT
PENDANT
1
2
ARRET
 
MODE tir
COMMENCEMENT //éxécuté une fois en debut de mode
10
11
12
PENDANT      //exécuté en boucle
13
14
ARRET        //exécuté à la fin du mode
12
11
10
 
MODE moveup
COMMENCEMENT
3
4
5
PENDANT
6
ARRET
5
4
3
 
MODE mort
COMMENTCEMENT
15 16 17 18 19
PENDANT
ARRET
*****************
 
L'écriture d'un fichier d'affichage t'économisera beaucoup de misères. C'est plus simple à coder qu'un interpréteur de script et pour un shoot'em up c'est plus simple.
 
ensuite dans ton code, t'as une string avec le nom du mode et ton code va chercher dans la structure de donnée construite à partir de ton fichier affichage parsé quels frames afficher.
 
Bien sûr c'est un exemple, mais la même chose un peu plus compliquée peut faire des miracles et des animations de folie.
 
maile moi si tu veux en parler.
chadenat A la brutale. En général, ils définissent une stucture pour les sprites qui contient les différentes frames composant le sprite et ses coordonnées. Tu fais varier les coordonnées dans la boucle principale de ton jeu.
verdoux Comme dans les autres langages de prog :D
Alload Maintenant que je sais comment marche l'aspect graphique d'un jeu 2D, je me demandais comment les developpeurs codaient les actions des ennemis et leurs chemins prédéfinis. Si quelqu'un pouvait un peu m'expliquer.
 
PS: je parle pas de l'intelligence artificiel, juste de faire bouger des ennemis dans un chemin prédéfini.

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)