2
所以我一直在寻找几个小时,我似乎找不到任何东西来帮助我,所以我会开始说我是新的,就像很新,但我要明白,为了在不同的帧率下保持恒定的移动速度,我需要合并速度并确定自循环的最后一次迭代以来流逝的时间。sfml 2.0中的流速和时间
因此,这是我迄今为止
#include <SFML/Graphics.hpp>
int main()
{
sf::RenderWindow window(sf::VideoMode(800, 600, 32), "Oliver Rules!");
float speed = 20.f;
float locX = 0.f;
float locY = 0.f;
sf::CircleShape circleOne(50);
circleOne.setFillColor(sf::Color(200, 40, 200));
sf::Clock clock;
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
sf::Time elapsed1 = clock.restart();
if(sf::Keyboard::isKeyPressed(sf::Keyboard::A))
{
locX -= speed * elapsed1;
}
if(sf::Keyboard::isKeyPressed(sf::Keyboard::D))
{
locX += 0.1;
}
if(sf::Keyboard::isKeyPressed(sf::Keyboard::W))
{
locY -= 0.1;
}
if(sf::Keyboard::isKeyPressed(sf::Keyboard::S))
{
locY += 0.1;
}
circleOne.setPosition(locX, locY);
circleOne.move(locX, locY);
window.clear();
window.draw(circleOne);
window.display();
}
return 0;
}
我的问题是什么,是我不能添加或从我已开始成为我circleOne的位置不能被编辑因变量减到elapsed1是一个浮动我相信,所以我的问题是,我怎么得到这个工作?
啊甜美我以为我必须转换过去,但我不知道如何,谢谢百万:) – user2342575 2013-05-02 11:04:35
显然我不能upvote呢:(但我couldnt得到它的工作,这是我把,我不认为我正在写它,我之前已经阅读过这些文档,我明白我需要做什么,但不知道如何去做。虽然我会把这部分内容弄清楚,但感谢大家帮忙。 – user2342575 2013-05-02 11:53:51
@ user2342575好的,没问题。希望你能用SFML 2.0获得乐趣:) – Morwenn 2013-05-02 12:08:43