示例#1
0
void worms_process_input(const int ch)
{
    switch ( ch ) {
        case 'h':
        case 'H':
        case KEY_LEFT:
            worm_set_direction(WORM_DIR_LEFT);
            break;

        case 'j':
        case 'J':
        case KEY_DOWN:
            worm_set_direction(WORM_DIR_DOWN);
            break;

        case 'k':
        case 'K':
        case KEY_UP:
            worm_set_direction(WORM_DIR_UP);
            break;

        case 'l':
        case 'L':
        case KEY_RIGHT:
            worm_set_direction(WORM_DIR_RIGHT);
            break;

        case 'q':
        case 'Q':
            tge_end_game(WORMS_EXIT_NORMAL);
            break;
    }
}
static int
get_move (void)
{
  int player, move;

  if (ggz_read_int (fd, &player) < 0 || ggz_read_int (fd, &move) < 0)
    return -1;
  /* show some kind of pregame thing....  */
  worm_set_direction (player, move);
  return 0;
}
示例#3
0
static void
gnibbles_worm_dequeue_keypress (GnibblesWorm * worm)
{
  key_queue_entry *entry;
  int n = worm->number;

  entry = (key_queue_entry *) g_queue_pop_head (key_queue[n]);

  worm_set_direction (entry->worm->number, entry->dir);

  g_free (entry);
}
示例#4
0
void
worm_handle_direction (int worm, int dir)
{
  if (ggz_network_mode) {
#ifdef GGZ_CLIENT
    network_game_move (dir);

    worms[0]->direction = dir;
    worms[0]->keypress = 1;
#endif
  } else {
    worm_set_direction (worm, dir);
  }
}