Buenas. Me encontré con este ejercicio de C++ pero no sé muy bien cómo resolverlo. Os comparto el enunciado.
Escribe el código de la siguiente función para que busque y elimine la primera bala que se solape con el rectángulo con esquina superior izquierda en (x,y), anchura w y altura h. La función devolverá 1 si eliminó alguna bala y 0 en caso contrario.
int colision_rafaga (NodoPtr cabecera, double x, double y, double w, double h);
Yo ya he definido la estructura bala y la estructura ráfaga de este modo, pero no sé muy bien cómo implementar tal función.
struct BalaRep {
double x;
double y;
double vx;
double vy;
double w;
double h;
Imagen img;
};
struct Nodo {
struct BalaRep * Bala;
struct Nodo * sig;
};
Mi idea es usar esta función de abajo dentro de colision_rafaga, pero no sé muy bien cómo asignar los parámetros o qué pasos previos debo dar.
int dentro_rectangulo ( int x, int y, int w, int h, int px, int py ) {
return px > x && px < x + w && py < y && py > y - h;
}
Muchas gracias por vuestra atención.
Escribe el código de la siguiente función para que busque y elimine la primera bala que se solape con el rectángulo con esquina superior izquierda en (x,y), anchura w y altura h. La función devolverá 1 si eliminó alguna bala y 0 en caso contrario.
int colision_rafaga (NodoPtr cabecera, double x, double y, double w, double h);
Yo ya he definido la estructura bala y la estructura ráfaga de este modo, pero no sé muy bien cómo implementar tal función.
struct BalaRep {
double x;
double y;
double vx;
double vy;
double w;
double h;
Imagen img;
};
struct Nodo {
struct BalaRep * Bala;
struct Nodo * sig;
};
Mi idea es usar esta función de abajo dentro de colision_rafaga, pero no sé muy bien cómo asignar los parámetros o qué pasos previos debo dar.
int dentro_rectangulo ( int x, int y, int w, int h, int px, int py ) {
return px > x && px < x + w && py < y && py > y - h;
}
Muchas gracias por vuestra atención.