示例#1
0
Entity construct_Player(int x, int y, int orientation) {
  Entity player = construct_Entity(x, y, orientation);
  player.update = &Player_update;
  
  Part torso = construct_Part();
  torso.addFrame(&torso, "north_idle", 2, 2, '@', WHITE);
  torso.addFrame(&torso, "east_idle", 2, 2, '@', WHITE);
  torso.addFrame(&torso, "south_idle", 2, 2, '@', WHITE);
  torso.addFrame(&torso, "west_idle", 2, 2, '@', WHITE);
  torso.addFrame(&torso, "north_swing_0", 2, 2, '@', WHITE);
  torso.addFrame(&torso, "north_swing_1", 2, 2, '@', WHITE);
  torso.addFrame(&torso, "north_swing_2", 2, 2, '@', WHITE);
  torso.addFrame(&torso, "east_swing_0", 2, 2, '@', WHITE);
  torso.addFrame(&torso, "east_swing_1", 2, 2, '@', WHITE);
  torso.addFrame(&torso, "east_swing_2", 2, 2, '@', WHITE);
  torso.addFrame(&torso, "south_swing_0", 2, 2, '@', WHITE);
  torso.addFrame(&torso, "south_swing_1", 2, 2, '@', WHITE);
  torso.addFrame(&torso, "south_swing_2", 2, 2, '@', WHITE);
  torso.addFrame(&torso, "west_swing_0", 2, 2, '@', WHITE);
  torso.addFrame(&torso, "west_swing_1", 2, 2, '@', WHITE);
  torso.addFrame(&torso, "west_swing_2", 2, 2, '@', WHITE);

  Part front = construct_Part();
  front.isSolid = false;
  front.addFrame(&front, "north_idle", 2, 1, '^', WHITE);
  front.addFrame(&front, "east_idle", 3, 2, '>', WHITE);
  front.addFrame(&front, "south_idle", 2, 3, 'v', WHITE);
  front.addFrame(&front, "west_idle", 1, 2, '<', WHITE);

  Part sword_part_1 = construct_Part();
  sword_part_1.isWeapon = true;
  sword_part_1.isSolid = false;
  sword_part_1.addFrame(&sword_part_1, "north_swing_0", 1, 1, '\\',
                        WHITE);
  sword_part_1.addFrame(&sword_part_1, "north_swing_1", 2, 1, '|',
                        WHITE);
  sword_part_1.addFrame(&sword_part_1, "north_swing_2", 3, 1, '/',
                        WHITE);
  sword_part_1.addFrame(&sword_part_1, "east_swing_0", 3, 1, '/',
                        WHITE);
  sword_part_1.addFrame(&sword_part_1, "east_swing_1", 3, 2, '-',
                        WHITE);
  sword_part_1.addFrame(&sword_part_1, "east_swing_2", 3, 3, '\\',
                        WHITE);
  sword_part_1.addFrame(&sword_part_1, "south_swing_0", 3, 3, '\\',
                        WHITE);
  sword_part_1.addFrame(&sword_part_1, "south_swing_1", 2, 3, '|',
                        WHITE);
  sword_part_1.addFrame(&sword_part_1, "south_swing_2", 1, 3, '/',
                        WHITE);
  sword_part_1.addFrame(&sword_part_1, "west_swing_0", 1, 3, '/',
                        WHITE);
  sword_part_1.addFrame(&sword_part_1, "west_swing_1", 1, 2, '-',
                        WHITE);
  sword_part_1.addFrame(&sword_part_1, "west_swing_2", 1, 1, '\\',
                        WHITE);

  Part sword_part_2 = construct_Part();
  sword_part_2.isWeapon = true;
  sword_part_2.isSolid = false;
  sword_part_2.addFrame(&sword_part_2, "north_swing_1", 2, 0, '.',
                        WHITE);
  sword_part_2.addFrame(&sword_part_2, "east_swing_1", 4, 2, '-',
                        WHITE);
  sword_part_2.addFrame(&sword_part_2, "south_swing_1", 2, 4, '`',
                        WHITE);
  sword_part_2.addFrame(&sword_part_2, "west_swing_1", 0, 2, '-',
                        WHITE);

  player.addPart(&player, torso);
  player.addPart(&player, front);
  player.addPart(&player, sword_part_1);
  player.addPart(&player, sword_part_2);

  strcpy(player.currentFrame, "north_idle");

  return player;
}