un bout de code … d’alignement ?

Je range … Et au milieu de tous les brols qui reviennent de mon ancien bureau et qui ne trouveront pas de place dans le nouveau, je tombe sur une tentative d’illustration du roll-jump de DKC returns précédé d’un morceau de code:

while (! cando(dx, dy)) {
  if (dx!=0) {
    dx=(dx>0)? (((x+w+dx)|7)-x)
               : (((x+dx) & ~7)-x);
  } else {
     if (dy==0) return FAIL;
  }
  dy=(dy>0)? (( y+h+dy ) | 7) - x)
             : (( y + dy) & ~7) -y);
  }
}
return NONE;

Some code snippet I found on a flying sheet of paper while cleaning up and shifting some books around. It should help dealing with alignment along walls and floors while being carried by a platform. Time constraint do not allow me to integrate it into the source code so far, and I’ve been wondering where it could be for about 2 weeks, so I’ll just keep it here for now. It should complement the newly introduced GameObject::ride() function.

Il doit s’agir de la logique d’alignement impliquée dans le déplacement “sur une plate-forme”, gribouillé une fin de soirée, mais comme je n’ai aucun schéma qui l’accompagne et que j’ai été avare en valeurs symboliques, on verra ça plus tard: c’est l’heure des tartines.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.