SFML 视图 setCenter 与旋转 [英] SFML Views setCenter vs rotation
问题描述
我有一个与原始窗口 (500,300) 相同尺寸的视图
I have a view with same dimensions of original window (500,300)
我应用 view.zoom(2)
将视图保留一半大小.
I apply view.zoom(2)
to leave the view at half the size.
现在视图居中.我想将视图移动到原始窗口的左上角.所以我把 view.setCenter(500,300);
Now the view is centered. I want to move the view to the upper left corner of the original window. So I put view.setCenter(500,300);
视图现在正确定位在原始窗口的上角.但现在我想旋转视图,使视图的中心成为自己的左上角,即 (0,0): view.setRotation(5);
The view is now correctly positioned in the upper corner of the original window. But now I want to rotate the view, making the center of the view its own top left corner, ie (0,0): view.setRotation(5);
如您所见,旋转轴的中心应为 0.0,但未遵守.问题是,如果我执行view.setCenter(0,0)
,整个视图返回到原始窗口的中间.
As you can see, the center of the axis of rotation should be 0.0 but not respected.
The problem is that if I do view.setCenter (0,0)
, the whole view returns to the middle of the original window.
如何解决这个问题?
推荐答案
代替使用 view.setCenter(500,300);
通过 view.move(x_offset, y_offset);代码>.然后应用
setCenter(...)
不会重新定义中心,也不会被重置.
Instead of using view.setCenter(500,300);
move it via view.move(x_offset, y_offset);
. Then applying setCenter(...)
won't redefine the center and it won't get reset.
我建议参考 View 的 API 参考 进一步阅读.
I recommend consulting the API reference of View for further reading.
您可能还对 void sf::View::setViewport(const FloatRect& viewport)
或 void sf::View::reset(const FloatRect& rectangle)
感兴趣代码>.
You might also be interested in void sf::View::setViewport(const FloatRect& viewport)
or void sf::View::reset(const FloatRect& rectangle)
.
这篇关于SFML 视图 setCenter 与旋转的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!