95Fermer97
PolluxLe 25/05/2004 à 20:59
sans table :

int x=123,y=32;
int yd=0;

while (!exit_game) {
  if (key.jump && can_jump()) yd=8;
  y+=yd--;
  while (under_ground(y))
    y++,yd=0;

  ... afficher, modifier la position en x ...

 }


l'équivalent avec des tables, c'est

int jump_table[8]={1,3,4,3,1,-4,-10,-20};

int x=123,y0=32;
int jump_idx=-1;

while (!exit_game) {
  if (key.jump && can_jump()) jump_idx=0;
  y=jump_idx<0 ? y0 : y0+jump_table[jump_idx];
  while (under_ground(y))
    y++,jump_idx=-1;
  if (jump_idx<0)
    y0=y;
  else if (++jump_idx>=8)
    jump_idx--;

  ... afficher, modifier la position en x ...

 }


qui est loin d'être plus simple neutral

je vois pas comment tu peux dire que c'est "vraiment la meilleure solution" embarrassed