だから私は今何時間も探していましたが、これを助けるものを見つけることができないようです.さまざまなフレームレートで、速度を組み込み、ループの最後の反復からの経過時間を決定する必要があります。
だからこれは私がこれまで持っているものです
#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;
}
私の問題は、サークルの場所になるように開始した変数を加算または減算できないことです。経過1がフロートであると信じているため、編集できません。私の質問は、どうすればこれを取得できますか働く?