Voilà la question de programmation du jour.
Comment sont gérées les attaques et les armes dans les Secret of?
Au début j'étais partis en me disant qu'il me fallait un truc de détections des collisions puis en donnant la partie dangereuse du sprite (la lame quoi) je saurais si j'ai touché l'ennemi.
Là dessus, premier constat: pour faire un jeu dans le style des Secret of, on a rarement besoin d'une précision au pixel près, surtout pour les attaques: il suffit lors de l'attaque de définir un rectangle "danger" dont la taille varie en fonction de l'arme et si l'ennemi est dedans, tant pis pour lui. on pourra à la rigueur se faire une détection entre un rectangle et un pixel près (pour l'ennemi), ça fera déjà moins ramer.
Je dis ça parce qu'on définira aussi le rectangle "pieds" et que le même genre de comparaison devrait servir pour les décors.
Cette technique semble être utilisée pour Secret of Evermore (lorsqu'on est de face, la hache ne fait qu'un pixel de large une fois abattu et on touche pourtant des ennemis en diagonale) en mode rectangle/rectangle.
Vient la deuxième partie du problême: avec une telle methode, je n'ai plus besoin de "séparer" l'arme et celui qui la porte et donc au prix que ça coute je peux me faire plusieurs images, avec chaque arme différente. Là encore, je sais que cette methode est utilisé pour Secret of Evermore: le personnage est plus petit lorsqu'il porte un os que lorsqu'il porte une hache :).
Par contre, je ne suis pas sûr qu'elle le soit pour Secret of Mana: en effet, dans cet opus, les armes sont régulièrement enchantées et change de couleur (ce qui n'est pas le cas dans SoE) et il semblerait donc que les armes soient des sprites indépendants.
Pour le vérifier, il faudrait voir si on peut infléchir la trajectoire du boomerang en se déplacant après l'avoir jeté. Si c'est possible, alors les armes sont des sprites indépendant. J'ai pas de sauvegarde de SoM, mais je suis sûr qu'il y en a un parmis vous qui en a une pas loin et qui va faire le test pour moi :D . (pour envoyer URB se faire voir, tappez 1).
En tout cas cela pose un problême si les armes sont indépendantes: les faire bouger avec le héros en étant sûr qu'elle resteront toujours dans sa main, ça va être technique. D'ailleurs, celui qui aura fait le test ci-dessus pourra tant qu'il y ait se demander si les trois persos manient les armes de la même façon (c'est le genre de truc qu'on regarde pas quand on joue mais qui en disent long sur comment a été fait la sauce).
Vous vous demander je le sais pourquoi je me prends la tête (et la votre au passage) avec ça. Ben, je n'ai toujours pas abandonné l'idée de faire plein de jeux-vidéos partout et puis c'est un problême de programmation interressant et je suis toujours à l'affut d'une explication sur comment marche les choses.
La prochaine nous nous demanderons:
"Et dans A link to the past? Les collisions se font cette fois au pixel près, c'est sûr, mais comment font ils pour que ça ne rame pas?"
Nous pourrons après nous demander:
"Comment enregistrer les cartes? Deux images: l'une intraversable (collision = rejet) et l'autre traversable? Plus un truc pour l'eau et l'herbe qui ne recouvre le personnage qu'à moitié? Et après un fichier .dat qui contiendra toutes les informations sur les évennements de la carte? Codé comment?"
Que de questions passionnantes sur la réalisation d'une jeu vidéo mes amis!
Modifié par URB le 03/01/2008 à 20:50
You must construct additional pylons.