いくつかのコード:
Menu.Handle_MouseOvers(MousePosition); //Runs function below
void Handle_MouseOvers(Vector2<int> &MousePositions) ///Runs function below
{
if (MenuButtons.size() > 0)
MenuButtons[0].CheckContains(MousePositions);
}
void CheckContains(Vector2<int> &MousePositions)
{
if (ButtonShape.GetShape() == "Rect" && ButtonShape.GetRect().Contains(MousePositions)) ///This doesn't run sometimes
{
MouseOver = true;
std::cout << "MouseOver is true" << std::endl;
}
else{
std::cout << "mouseOver is false" << std::endl;
MouseOver = false;
}
}
何らかの理由で、ButtonShape.GetRect().Contains(MousePositions) は約 80% しか実行されません。関数内にいくつかの couts を配置しましたが、失敗した場合、関数はまったく実行されません。ほとんどの場合、なぜそれが機能するのかわかりません笑。誰にもアイデアはありますか?どんな助けでも大歓迎です。
これを編集として追加します。
bool Contains(Vector2<int> &MousePosition)
{
std::cout << MousePosition.x << " " << MousePosition.y << std::endl;
if (MousePosition.x >= x && MousePosition.x <= x + Width && MousePosition.y >= y && MousePosition.y <= y + Height)
return true;
else
return false;
}