尝试在C ++ SFML代码块中设置框架时出错

时间:2017-05-12 04:40:29

标签: c++ codeblocks sfml

您好我正在尝试设置一个程序,其中一个球会在渲染窗口反弹。我正在使用SFML c ++,iostream,codeblocks(如果这有所不同)。我知道我并没有接近完成,我可能会走错方向。但是,我确实知道的一件事是,为了让我的程序工作,我需要实现sf :: Window :: setFramerateLimit(60);或者至少这就是我在代码中所拥有的。

include<iostream>
#include<stdlib.h>
#include<time.h>
using namespace std;
using namespace sf;

int main(){
RenderWindow window(sf::VideoMode(1500,800), "Bouncing Circle");
sf::Window::setFramerateLimit(60);

当我尝试构建/运行我的程序时,我收到一个错误:

错误:无法调用成员函数'void sf :: Window :: setFramerateLimit(unsigned int)'没有对象|

#include<iostream>
#include<SFML/Graphics.hpp>
#include<stdlib.h>
#include<time.h>
using namespace std;
using namespace sf;

int main(){
RenderWindow window(sf::VideoMode(1500,800), "Bouncing Circle");
sf::Window::setFramerateLimit(60);
srand(time(NULL));
int Rand1 = rand()%1500+1;
int Rand2 = rand()%800+1;
int x;
int y;
int BREAK = 1;
sf::CircleShape MyCircle(50);
MyCircle.setPosition(1,1);
MyCircle.setFillColor(sf::Color(500,0,0));

  while (window.isOpen())
 {

    sf::Event event;
    while (window.pollEvent(event));
    {
        if(event.type == sf::Event::Closed)
            window.close();

    }
    x = 1;
    y = 1;
    for(int ii = 0; ii < 675; ii++){

    x++;
    y++;
    MyCircle.setPosition(x, y);
    window.draw(MyCircle);
    window.display();
    window.clear();
    BREAK++;
    if(BREAK == 675){
        break;
    }
    }

}
return 0;
}

1 个答案:

答案 0 :(得分:1)

如果您sf::Window::setFramerateLimit(60);尝试window.setFramerateLimit(60);,则会将创建的窗口(名为&#34; window&#34;)的帧速率设置为每秒60帧。