Вам нужно будет написать себе кучу классов GUI, которые рисуют интерфейс GUI (кнопки, текст), а также некоторое базовое «обнаружение столкновений», чтобы определить, была ли нажата мышь внутри вашей кнопки, когда пользователь нажимает кнопку мыши. .
Вам не обязательно использовать указатели на функции, они более удобны. Пример ниже такой же способный.
Я бы вместо этого написал класс кнопки, который имел бы позицию, ширину, высоту и т. Д., Тогда вы могли бы написать метод, который возвращался при щелчке мыши, не требуя какого-либо жесткого кодирования, которого вам следует избегать любой ценой.
Если вы хотите реализовать очень простой и негибкий графический интерфейс, вы можете обнаружить щелчки мышью, как показано ниже:
if ( mouseWasClicked == true )
{
if (( mouseX > startButton.minX && mouseX < startButton.maxX ) &&
( mouseY > startButton.minY && startButton.maxY < mouseY) )
{
loadGame();
}
}
При этом я рекомендую использовать подходящую библиотеку для системы с графическим интерфейсом, такую как CEGUI , которая является открытым исходным кодом и работает с движками рендеринга, такими как Ogre и другими. CEGUI также портативен и намного легче, чем Qt. Рекомендуется, если вы программируете игру.
Не изобретайте велосипед, если не пытаетесь узнать, как работает низкий уровень, используйте что-то проверенное.