2

我无法在定义的矩形内绘制可滚动内容。我想要实现的是能够在矩形内自由滚动内容,任何不在或部分不被裁剪的内容。目前,我滚动可用项目的数量,以确保在矩形之外绘制任何内容。

查看 SFML 中可用的内容,似乎我应该能够使用 sf::View 来实现这一点,但我的尝试没有奏效。

sf::View panelView;

panelView.reset(sf::FloatRect(220,85,815,575));
panelView.setViewport(sf::FloatRect(0, 0, 1.0f, 1.0f));

然后我将视点设置为此,绘制我的项目,然后返回默认视图。它似乎总是绘制到整个屏幕而不是我在重置方法中设置的所需矩形?

我的理解是,这应该在 x 轴上的 220、y 轴上的 85、815 宽和 575 高处创建视口,但它在此边界之外绘制。

有任何想法吗?

4

1 回答 1

5

对问题进行了更深入的研究 - 似乎我只需要将我的位置设置为 0.0f 和 1.0f 之间的一个因子,下面的示例代码中的位置是我希望放置视口的位置:

sf::FloatRect panelRect(position.left / SCREENWIDTH,
(position.top) / SCREENHEIGHT,
(position.width) / SCREENWIDTH,
(position.height) / SCREENHEIGHT);

panelView.reset(sf::FloatRect(position.left,position.top,position.width,position.height));
panelView.setViewport(panelRect);
于 2013-04-18T23:00:15.820 回答