Posté le 22/04/2020 12:05
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 158 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 22/04/2020 12:11 | #
Ce que tu cherches s'appelle une recherche de chemin (ou pathfinding). Il y a plein d'algorithmes pour faire ça. Le plus simple est de faire un parcours en largeur de ta map ; le tank explore toutes les cases où il peut aller, de la plus proche à la plus lointaine, jusqu'à tomber sur la destination qu'il vise.
Au niveau un peu au-dessus, tu as l'algorithme de Dijkstra, qui va un peu plus vite ; et au niveau bien au-delà, tu as des choses comme A* qui vont très vite mais sont assez compliqués à coder.
Citer : Posté le 22/04/2020 12:12 | #
Pour ce qui est des techniques de pathfinding, j'adore les articles de Redblob games
Entre autres :
– https://www.redblobgames.com/pathfinding/grids/algorithms.html
– http://theory.stanford.edu/~amitp/GameProgramming/
– https://www.redblobgames.com/pathfinding/tower-defense/
Citer : Posté le 22/04/2020 12:25 | #
Super ! Merci !
Je teste ça tout de suite !
Ajouté le 23/04/2020 à 10:48 :
et tant qu'on y est, le programme peut-il détecter les pixels noir ou il faut lui donner les coordonnées des murs ?
Il ne faut pas prendre les gens pour des cons, mais il ne faut pas oublier qu'ils le sont !
Citer : Posté le 23/04/2020 10:51 | #
De manière générale, en C, on a tendance à garder en mémoire les objets. C'est plus pratique pour gérer les collisions. Après si tu as une matrice de 128×64 valeurs, autant lire directement dans la VRAM. Par contre pour ça la méthode change suivant ton environnement de développement. Tu utilise quoi pour dessiner ?
Citer : Posté le 23/04/2020 10:54 | #
Je dessine sur paint puis je convertit l'image avec SpriteCoder. La map est pour l'instant dessinée avec des carrés et des rectangles. Je pense modifier ça avec des sprites de dimention 127x63.
Du coup il faut les co des murs c'est ça ?
Il ne faut pas prendre les gens pour des cons, mais il ne faut pas oublier qu'ils le sont !
Citer : Posté le 23/04/2020 11:42 | #
Personellement pour alléger le tout j'aurais tendance à découper l'écran en carrés comme aux échecs. Comme ça tu as une matrice "map" de taille raisonnable (genre 10*8 par exemple..) et a chaque case tu associe un sprite (si il y a quelque chose à afficher bien sur). Après l'IA peut se référer a la matrice "map" pour ses déplacements.
-Planétarium 2
Citer : Posté le 23/04/2020 11:43 | #
Je parlais de la bibliothèque de dessin. gint, MonochromeLib ?
Citer : Posté le 23/04/2020 11:45 | #
Vu qu'il utilise SpriteCoder je suppose qu'il code avec MonochromeLib.
Citer : Posté le 24/04/2020 15:12 | #
Bien vu !
Point de vu technique: j'ai le sprite de mon niveau. Ok. Et à partire de là il faut que je déduise la position des mur ? Comment ?
Il ne faut pas prendre les gens pour des cons, mais il ne faut pas oublier qu'ils le sont !