如何在不弄乱代码的情况下抽象出来?

时间:2019-04-08 18:40:22

标签: c++ sfml abstraction

我有一个render函数,我需要传递要渲染的窗口以及要绘制的组件。所有组件都派生自sf::Drawable类。例如,我可以有一个{ {1}}打招呼或其他什么,我想画一个sf::Textsf::Rectangle是抽象的,所以我无法创建sf::Drawable的数据结构,然后打印该结构的每个成员。

我认为其他替代方案是为每个组件分别调用sf::Drawable,但这只是凌乱的代码。我可以重载渲染,因此它将花费render,而另一个花费std::vector<sf::Text>,但这将创建7个以上的渲染函数,而我将需要7个以上的数据结构来保存这些sf对象

我该如何以正确的OOP方法进行操作?

一些可视化代码:

std::vector<sf::Rectangle>

编译错误: State s("123456780", texture); //State is derived from drawable std::vector<sf::Drawable> components; sf::Text str("You won!!!", font, 30); while (running) { sf::Event evant; onEvent(window, evant,s); if (s.equals(goal)) { components.push_back(str); }else components.push_back(s); render(window, components); }

0 个答案:

没有答案