struct MenuItem で HighlightRectOutline を使用できるようにします。どうすればいいですか?
Text.h
class Text {
public:
....
void Text::highlightRectOutline(sf::RenderWindow &window, sf::Color color);
struct MenuItem {
public:
Menu::MenuResult action;
};
HighlightRectOutline:
void highlightRectOutline(sf::RenderWindow &window, sf::Color color) {
sf::RectangleShape outlineRect;
sf::Vector2f size(Text::getWidth(), Text::getHeight());
outlineRect.setSize(size);
outlineRect.setPosition(Text::getPosition());
outlineRect.setFillColor(sf::Color::Transparent);
outlineRect.setOutlineColor(color);
outlineRect.setOutlineThickness(5);
window.draw(outlineRect);
}
この機能は固定されています。スクロールダウン Menu.h
class Menu {
public:
static enum MenuResult { Exit, Options, Back, ChangeResolution, Play, Nothing };
MenuResult showMMenu(sf::RenderWindow &window);
MenuResult showOMenu(sf::RenderWindow &window);
private:
MenuResult getMenuResponse(sf::RenderWindow &window);
MenuResult handleClick(int x, int y);
Menu::MenuResult Menu::handleButtonHover(sf::RenderWindow &window, Text::MenuItem menuItem, int x, int y);
std::list<Text::MenuItem> menuItems;
};
ハンドルボタンホバー:
Menu::MenuResult Menu::handleButtonHover(sf::RenderWindow &window, Text::menuItem menuItem, int x, int y) {
sf::Color color(255, 122, 40);
std::list<Text::MenuItem>::iterator it;
for(it = menuItems.begin(); it != menuItems.end(); it++)
{
sf::floatRect menuItemRect = (*it).getRect();
if( menuItemRect.contains(x, y))
menuItem.highlightRectOutline(window, color);
}
return Nothing;
}
これは getRect または menuItem を使用できません。
助けていただければ幸いです。