Informations pratiques |
Ne faites pas de liens directs de téléchargement depuis ce site, merci.
|
| | | |
Mike Werewolf
Loup-garou
Site Admin
Inscrit le: 07 Oct 2004 |
Messages: 1676Karma: 52 plus / moins
|
Localisation: |
|
|
Après quelques tests, j'ai trouvé un sacré bug dans Mugen (un de plus ! ). Celui-ci concerne les puissances de 2 sur lesquelles je travaille.
Pour faire un résumé :
Je gère 3/4 des objets (les exceptions étant les bouteilles, leur contenus, les flèches et les bombes) selon la règle suivante :
* Si l'objet est acquis, alors sa valeur vaut 1
* Sinon, sa valeur vaut 0
0 et 1, c'est du binaire, d'où l'idée de passer par des "opérateurs logiques de bits" ou "booléens". En gros, on travaille avec des valeurs décimales, mais on se base sur leur équivalent binaire (par exemple, je vais prendre la valeur 4, mais ce qui m'intéresse, c'est son équivalent binaire, à savoir 100).
Et donc, je travaille aussi sur l'équivalent binaire de la variable qui gère les objets, où chaque "rang" vaut soit 1, soit 0, selon que l'on a ou non l'objet correspondant à ce rang (pour plus de détails, je compte poster bientôt la petite explication que j'avais mise chez Akreator avant son hack, et chez DS).
Le rapport avec les puissances de 2 ? Eh bien il se trouve que les puissances de 2 présentent une particularité intéressante au niveau binaire : chaque puissance de 2 ne contient qu'une seule fois le nombre 1. Par exemple (le "**" représente la puissance) : 2**2 = 4 = 100 en binaire ; 2**3 = 8 = 1000 en binaire, etc. Et je me sers de ces puissances de 2 pour savoir si on a ou non un objet, et pour modifier la valeur de ma variable lorsque j'achète l'objet.
Or il se trouve que Mugen s'emmêle complètement les pinceaux avec ces puissances... Pour info, 2**N = (2**(N-1))*2, ce qui signifie qu'à chaque fois qu'on augmente l'exposant de 1, on double la valeur du résultat, ce qui donne en théorie :
2**0 = 1 = 1 binaire
2**1 = 2 = 10 binaire
2**2 = 4 = 100 binaire
2**3 = 8 = 1000 binaire
2**4 = 16 = 10000 binaire
2**5 = 32 = 100000 binaire
2**6 = 64 = 1000000 binaire
Etc.
Sauf que si les équivalents binaires sont bien respectés, les valeurs décimales, elles, sont quelques fois farfelues. Ainsi, selon Mugen :
2**5 = 100000 binaire, ce qui est juste, mais côté décimal, on obtient 2**5 = 64 au lieu de 32 !
De même, 2**6 = 100000, ce qui est juste, mais en décimal, 2**6 = 32 pour Mugen, au lieu de 64 !
Autant dire que ça fait un sacré bins ! Voici un shot représentatif :
Dans ce debug, j'avais demandé l'affichage des puissances de 2 de :
- 0 à 4 pour la première ligne,
- 5 à 9 pour la seconde ligne.
J'ai donc du modifier quelques paramètres en fonction de ces valeurs étranges pour que tout rentre dans l'ordre. Même si ce n'est pas extrêmement grave, étant donné que l'équivalent binaire est bon (c'est le plus important), ça surprend !
A part ça, je rallonge un peu ma liste de "to do" :
* Ajouter des sons dans le magasin
* Afficher le nombre de flèches/bombes restantes avec les bouteilles
* Afficher en même temps les objets achetés ou non.
* Aficher dans le magasin la raison principale pour laquelle on ne peut acheter un objet (déjà acquis, manque d'argent, manque d'objet intermédiaires, niveau insuffisant)
* Gérer le magasin quand il y a plusieurs Link à l'écran
* Rajouter une possibilité d'activer ou désactiver les objets en mode Training (et pourquoi pas dans les autres modes en "1 combat" : versus, team versus, watch...).
Quant à ça :
Citation: | Je pense également rajouter un système de "fermeture automatique" du magasin dès lors qu'on n'a plus assez de rupees pour acheter un objet. |
C'est fait ! ^^
Sinon, je songe à faire une petite vidéo pour montrer de visu comment ça se passe à l'écran (étant donné que les shots ne sont ici pas très démonstratifs...).
Mike Werewolf.
|
|
| |
| | | |
| |
| | | |
| |
| | | |
Mike Werewolf
Loup-garou
Site Admin
Inscrit le: 07 Oct 2004 |
Messages: 1676Karma: 52 plus / moins
|
Localisation: |
|
|
Les pixels blancs, c'est "normal". En fait, il y a quelques pixels qui sont en commun avec ceux de Link, et comme dans la vidéo, Link a un costume blanc, ces pixels sont blancs aussi sur la GBA. Je corrigerai ça pour la version finale.
Le BGPalFX me semble une bonne idée, je la retiens.
Pour le code, en bref :
* J'ai réassigné une variable (var(57) qui devient var(39) ; j'utilise maintenant var(57) pour stocker les objets ; j'avais besoin d'un index élevé pour la "persistence" des variables entre les rounds et matchs).
* J'ai créé un CNS spécialement pour cette partie, qui fait environ 15 Ko, pour moins de 500 lignes de code.
* J'utilise au total 3 variables "joueur" (càd compte non tenu des variables des helpers) : une pour les objets, une pour les bouteilles, et une pour les stocks de bombes et flèches.
* Pour le changement d'anim entre objets dispo et non dispos, je me pète un ChangeAnim avec 22 triggers ! ^^'
* Pour éviter qu'une pression de 3-4 ticks sur une direction ne provoque un défilement de 3-4 objets, ou un achat de 4 bouteilles d'un coup, j'ai du coder des détections de relâchement de touche.
* Mugen ayant une gestion pourrie des parties flottantes des nombres à virgule (style 0.600000 - 0.1 = 0.499999 chez Mugen...), pour la gestion des stocks de bombes et flèches, j'ai du changer des VarAdd tout simple en VarSet plus complexes (style, au lieu de faire un VarAdd de -0.1, je fais VarSet de ((fvar*10)-1)/10 : le *10 fait que le -1 s'effectue sur des entiers, et le total est ensuite ramené à la valeur correcte via le /10).
Bref, je m'amuse bien là-dessus ! ^^ Je me dis que ça vaudrait presque le coup de faire un tuto pratique dessus, mais bon, c'est autre chose que le Gouki, y a de quoi s'arracher les cheveux (pour le lire autant que pour le rédiger, à mon avis...) !
Merci pour ces commentaires !
Mike Werewolf.
|
|
| |
| | | |
Mike Werewolf
Loup-garou
Site Admin
Inscrit le: 07 Oct 2004 |
Messages: 1676Karma: 52 plus / moins
|
Localisation: |
|
|
Voici les dernières news :
J'ai fait un test en condition réelles en essayant d'acheter tous les objets, en renouvelant le stock de bouteilles, bombes et flèches. Résultat, tout marchait presque bien.
Correction des petits problèmes rencontrés :
* On ne pouvait pas acheter le baril de poudre,
* Les bouteilles se remplissaient mal (d'abord la première puis ça passait à la quatrième, les bouteilles 2 et 3 restant toujours vides...),
* Trois objets (baguette de glace, baguette de feu, Mushu) n'enlevaient pas d'argent lors de l'achat.
Ces problèmes étant corrigés et après de nouveaux tests en conditions réelles, tout semble fonctionner parfaitement.
L'assombrissement du décor suggéré par Vil1 est intégré. Il n'est cependant effectif que sur les décors dont le SFF est clean (ça, j'y peux pas grand-chose...).
Voilà pour le moment.
Mike Werewolf.
|
|
| |
| | | |
| |
| | | |
| |
| | | |
| |
| | | |
Mike Werewolf
Loup-garou
Site Admin
Inscrit le: 07 Oct 2004 |
Messages: 1676Karma: 52 plus / moins
|
Localisation: |
|
|
Les mettre en ligne, j'y avais pensé (vu que c'est présenté comme ça la plupart du temps dans les Zelda), le problème, c'est que ça prend trop de place en largeur (avec deux Link qui s'affrontent, les infos de l'un chevaucheraient les infos de l'autre).
Par contre l'idée de ne redimensionner que les stocks de bombes et flèches me paraît bonne. Retoucher les icônes me semble faisable (je préfère ça plutôt que de scaler les explods), et faire une police plus petite doit également être faisable.
Je pense que dans ce cas, je remonterai légèrement l'info "rupees", et je mettrai dessous, en plus petit et en ligne, les infos flèches et bombes.
Merci pour les idées et avis ! ^^
EDIT : Alors, après réduction des icônes et des chiffres, et replacement, ça donne ça :
Et en mettant les bombes et flèches sur la même ligne, ça donne ça :
Je trouve cette dernière configuration plutôt bonne, et je pense que je vais la garder. Le "dédoublement" des infos lorsqu'il y a 2 Link en simul ne devrait pas poser de problème. Je pense aussi que je vais avoir la flemme de remonter les rupees pour mettre les bombes et flèches au-dessous ; finalement, comme ça, ce n'est pas choquant.
Mike Werewolf.
|
|
| |
| | | |
| |
| | | |
Mike Werewolf
Loup-garou
Site Admin
Inscrit le: 07 Oct 2004 |
Messages: 1676Karma: 52 plus / moins
|
Localisation: |
|
|
Cf. avant, je pense que les rupees au-dessus ou au-dessous, ça ne gêne pas. Niveau place, ça ne changerait rien, c'est juste une question de goût, je pense.
Sinon, petite nouveauté sur le magasin : la raison principale pour laquelle on ne peut pas acheter un objet est désormais affichée. Les voici par ordre de priorité (càd que si plusieurs raisons se cumulent - ex : manque de combats gagnés et manque d'argent - seule celle qui a la plus forte priorité s'affiche) :
* Objet déjà acquis :
* Pour les bombes, flèches et bouteilles, stock au maximum :
* Pour les contenus des bouteilles, si toutes les bouteilles sont déjà remplies :
* Manque d'expérience (= pas assez de combats gagnés) :
* Objet intermédiaire requis manquant :
NB : Je m'aperçois qu'il y a une ch'tite erreur, ça devrait être "missing required object"...
* Et enfin, manque d'argent :
Mike Werewolf.
|
|
| |
| | | |
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum
|
Toutes les heures sont au format GMT + 2 Heures
Page 4 sur 6
Télécharger le sujet
|
|
|
|