Błąd kolizji

0

W OpenGL stworzyłem sobie przykładowy przycisk.
Kolizja, którą napisałem nie działa najlepiej.
Oto kod:

int Click(int mouse_x, int mouse_y, int x, int y, int size_x, int size_y)
{
   if(mouse_x >= x &&  mouse_x <= size_x)
   {
	   if(mouse_y >= y && mouse_y <= size_y)return 1;
   }
   /*
   glBegin(GL_QUADS);// Rysujemy kwadraty
      glVertex3f( x, y, -1);// górny lewy
      glVertex3f( size_x, y, -1);// górny prawy
      glVertex3f( size_x, size_y, -1);// dolny prawy
      glVertex3f( x, size_y, -1);// dolny lewy
    glEnd();// Koniec rysowania kwadratu 
	*/
   return 0;
}

Nie wiem gzie popełniłem błąd. W komentarzy jest kod rysujący na jaki fragment ekranu działa kolizja.

0

if(mouse_x >= x && mouse_x <= size_x)

if(mouse_x >= x &&  mouse_x <= x+size_x)
0

Przed chwilą też na to wpadłem teraz myślę nad osią y.

0

Zmieniłem kod i teraz w ogóle nie działa .

Click(int mouse_x, int mouse_y, int x, int y, int size_x, int size_y)
{ 
   if(mouse_x >= x &&  mouse_x <= (x + size_x))
   {
	   if(mouse_y >= (y - size_y) && mouse_y <= y)return 1;
   }
   
   glBegin(GL_QUADS);// Rysujemy kwadraty
      glVertex3f( x, y, -1);// górny lewy
      glVertex3f( size_x + x, y, -1);// górny prawy
      glVertex3f( size_x + x, size_y + y, -1);// dolny prawy
      glVertex3f( x, size_y + y, -1);// dolny lewy
    glEnd();// Koniec rysowania kwadratu 
	
   return 0;
}
0

Problem już rozwiązałem.

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