コード例 #1
0
ファイル: kid-start-run.c プロジェクト: oitofelix/mininim
static bool
flow (struct anim *k)
{
  if (k->oaction != kid_start_run) k->i = -1, k->misstep = false;

  bool run = (k->f.dir == RIGHT) ? k->key.right : k->key.left;
  bool turn_run = (k->f.dir == RIGHT) ? k->key.left : k->key.right;
  bool couch = k->key.down;
  bool jump = ((k->f.dir == RIGHT) && k->key.right && k->key.up)
    || ((k->f.dir == LEFT) && k->key.left && k->key.up);

  if (couch) {
    kid_couch (k);
    return false;
  }

  if (jump && k->i < 3) {
    kid_jump (k);
    return false;
  }

  if ((k->i == 3 || k->i == 4) && turn_run) {
    kid_stop_run (k);
    return false;
  }

  if (k->i == 5) {
    if (run) kid_run (k);
    else kid_stop_run (k);
    return false;
  }

  select_frame (k, kid_start_run_frameset, k->i + 1);

  if (k->f.b == kid_turn_frameset[3].frame) k->fo.dx = +0;
  if (k->f.b == kid_stabilize_frameset[0].frame) k->fo.dx = +2;
  if (k->f.b == kid_stabilize_frameset[1].frame) k->fo.dx = +6;
  if (k->f.b == kid_stabilize_frameset[2].frame) k->fo.dx = +4;
  if (k->f.b == kid_stabilize_frameset[3].frame) k->fo.dx = +0;

  return true;
}
コード例 #2
0
ファイル: kid-run.c プロジェクト: jolfzverb/mininim
static bool
flow (struct anim *k)
{
  if (k->oaction != kid_run) k->i = -1;

  bool stop = ! ((k->f.dir == RIGHT) ? k->key.right : k->key.left);
  bool couch = k->key.down;
  bool jump = ((k->f.dir == RIGHT) && k->key.right && k->key.up)
    || ((k->f.dir == LEFT) && k->key.left && k->key.up);

  if (couch) {
    kid_couch (k);
    return false;
  }

  if (jump && k->f.b != kid_run_jump_frameset[10].frame) {
    kid_run_jump (k);
    return false;
  }

  if ((stop && k->f.b != kid_run_jump_frameset[10].frame)) {
    kid_stop_run (k);
    return false;
  }

  if (k->i == 7) k->i = -1;

  if (k->f.b == kid_turn_run_frameset[8].frame) k->i = 6;

  select_frame (k, kid_run_frameset, k->i + 1);

  if (k->f.b == kid_start_run_frameset[5].frame) k->fo.dx = -6;
  if (k->f.b == kid_turn_run_frameset[8].frame) k->fo.dx = -4;
  if (k->f.b == kid_run_jump_frameset[10].frame) k->fo.dx = -15;

  return true;
}