Exemple #1
0
// recibe un par (x, y) y un jugador, al cual debe mover en esa dirección
uint game_jugador_moverse(jugador_t *j, int x, int y) {
    int nuevo_x = j->x + x;
    int nuevo_y = j->y + y;

    // ~~~ completar ~~~
    if (!game_es_posicion_valida(nuevo_x, nuevo_y)) return 0;
    screen_borrar_jugador(j);
    j->x = nuevo_x;
    j->y = nuevo_y;
    screen_pintar_jugador(j);
    return 1; // uso todas las variables locales para que no tire warning -> error
}
Exemple #2
0
void screen_cargar_atras_debug() {
    int i, j;
    for (i = POSICION_CUADRO_DEBUG_X; i < POSICION_CUADRO_DEBUG_X + ANCHO_CUADRO_DEBUG; i++) {
        for (j = POSICION_CUADRO_DEBUG_Y-1; j < POSICION_CUADRO_DEBUG_Y + ALTO_CUADRO_DEBUG; j++) {
            p[j+1][i] = p2[j+1][i];
        }
    }

    for (i = POSICION_CUADRO_DEBUG_X; i < POSICION_CUADRO_DEBUG_X + ANCHO_CUADRO_DEBUG; i++) {
        for (j = POSICION_CUADRO_DEBUG_Y-1; j < POSICION_CUADRO_DEBUG_Y + ALTO_CUADRO_DEBUG; j++) {
            screen_actualizar_posicion_mapa(i, j);
        }
    }
    screen_pintar_jugador(&jugadorA);
    screen_pintar_jugador(&jugadorB);

    for (i = 0; i < MAX_CANT_PERROS_VIVOS; i++) {
        perro_t *dog = &(jugadorA.perros[i]);
        if (dog->libre) continue;
        screen_pintar_perro(dog);
    }
}