Salut à tous!
J'étais entrain de regarder et d'essayer de comprendre le code pour le pathfinding du perso. En lisant le fichier /com/an...agames/jerakine/pathfinding/Pathfinding.as, j'ai remarqué que il y avait des bouts de code bizarre.
Par exemple, on a (lignes 195-198):
if(i == start.x || y == start.y)
{
movementCost = movementCost - 3;
}
alors qu'on s'attendrait à quelque chose comme (x == start.x || y == start.y) dans la condition. i est un itérateur utilisé dans des boucles bien avant ce bout de code et n'a rien à voir avec des coordonnées.
Il y a aussi des conditions étranges du style (lignes 176-209) :
if(bAllowTroughEntity)
{
...
distanceTmpToEnd = MapTools.getDistance(cellId,endCellId);
if(distanceTmpToEnd < distanceToEnd)
{
endCellAuxId = cellId;
distanceToEnd = distanceTmpToEnd;
}
}
Ce qui n'a pas vraiment de sens : le client enregistre la cell la plus proche de la fin SI ET SEULEMENT SI on autorise le personnage à passer à travers les entitées? C'est bizarre.
Le reste de la fonction est bourré de code et de conditions qui semble très très arbitraires pour du pathfinding avec A* (enfin à mon avis. J'avais un peu travaillé sur du A* mais je n'avais jamais vu de conditions dans ce style.)
Je me demande donc si il peut y avoir des erreur lors de la décompilation avec JPEXS et si oui, comment pourrait-on faire pour avoir un code sans erreur. Je me demande aussi si il y a d'autres erreurs de décompilations que je n'aurais pas vu car elle ne me paraissaient pas anormales.
Vous en pensez quoi?
Merci d'avance.
PS : Je me trompe peut être. Il est fort possible que le code soit complètement correct et que je m'inquiète pour rien.