一些代碼:爲什麼一個函數有時不會運行?
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()包含(MousePositions)只運行時間約80%。我在函數中放置了一些cout,當它失敗時,它根本不運行該函數。我不明白爲什麼它會在大多數時間工作大聲笑。有沒有人有任何想法?任何幫助將不勝感激。
將此添加爲編輯;
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;
}
短路評估? – phoeagon 2013-04-22 02:12:15
請發佈一個完整的示例,重新創建您所問的問題。該示例應儘可能最小化。 – 2013-04-22 02:13:17