SFML Window :: getPosition()和setPosition在坐标中不一致

时间:2016-10-03 17:04:25

标签: c++ sfml

通过SFML教程我试着编写一个小代码示例,随着时间的推移将窗口向右滑动,它的行为方式是我没想到的(窗口一直滑到底部) 。这是一个最小的例子,尽管getPositionsetPosition吐出的#include <SFML/Window.hpp> #include <SFML/System/Clock.hpp> #include <SFML/System/Time.hpp> int main(){ sf::Window window(sf::VideoMode(800,600), "Aydin's Window"); window.setPosition(sf::Vector2i(10, 10)); sf::Clock clock; while(window.isOpen()){ sf::Event event; while(window.pollEvent(event)){ if(event.type == sf::Event::Closed) window.close(); } sf::Time elapsed = clock.getElapsedTime(); if(elapsed > sf::milliseconds(100)){ sf::Vector2i pos = window.getPosition(); window.setPosition(pos); clock.restart(); } } return 0; }

符合相同的坐标,但窗口仍在移动
getPosition

可以预期此代码会将窗口保持在原位,而是在我的计算机上向右和向下滑动。我有一个朋友运行相同的代码。在他的机器上,它向左和向上滑动。发生了什么事?

编辑:当我创建没有装饰的窗口(sf :: Style :: None)时,窗口保持原样。我猜测setPosition或{{1}}中的一个被标题栏偏移而另一个不是。

0 个答案:

没有答案