Jeden element w drugim

0

Witam,

Mam problem bo kiedy napisałem program :

const int SZER = 640;
const int WYS = 480;

int main()
{
    al_init();
    al_init_primitives_addon();
    ALLEGRO_DISPLAY *okno = al_create_display(SZER, WYS);
    al_install_keyboard();
    ALLEGRO_KEYBOARD_STATE klawiatura;
    int x = SZER / 2, y = WYS / 2, r = 30;
    int x1 = 230, y1 = 100, r1 = 15;
    int dx = 1, dy  = 1;
    do {

        al_clear_to_color(al_map_rgb_f(1.0, 0.0, 0.0)); // RGB
        al_draw_filled_circle(x, y, r, al_map_rgb_f(0.0, 0.0, 1.0));
         al_draw_filled_circle(x1,y1,r1, al_map_rgb_f(0.0,0.0,1.0));
         al_draw_filled_rectangle(303,308,373,345, al_map_rgb_f(0.0,0.9,1.0));
        al_flip_display();
        x1 += dx; y1 += dy;
        if (x1 + r1 == SZER) dx = -1;
        if (y1+ r1 == WYS)  dy = -1;
        if (x1 - r1 == 0)    dx =  1;
        if (y1 - r1 == 0)    dy =  1;
        al_get_keyboard_state(&klawiatura);
        if (al_key_down(&klawiatura, ALLEGRO_KEY_RIGHT) && x + r < SZER) ++x;
        if (al_key_down(&klawiatura, ALLEGRO_KEY_LEFT)  && x - r > 0)    --x;
        if (al_key_down(&klawiatura, ALLEGRO_KEY_DOWN)  && y + r < WYS)  ++y;
        if (al_key_down(&klawiatura, ALLEGRO_KEY_UP)    && y - r > 0)    --y;
        al_rest(0.001);

    } while(!al_key_down(&klawiatura, ALLEGRO_KEY_ESCAPE));
    al_destroy_display(okno);
    return 0;
}

To kółko którym steruje użytkownik może bez problemu wejść do środka prostokątu i kołka które samo się porusza. A więc jak zrobić aby żadna z tych figur nie mogła "wejść" do środka innej figury?

0
  1. Podziel kod na konkretne zadania.
  2. Zdefiniuj odpowiednie klasy.
  3. Uniezależnij poszczególne elementy, takie jak input i kolizje.
0

A jak bo ja dopiero zaczynam ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1