您好我正在尝试设置一个程序,其中一个球会在渲染窗口反弹。我正在使用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;
}
答案 0 :(得分:1)
如果您sf::Window::setFramerateLimit(60);
尝试window.setFramerateLimit(60);
,则会将创建的窗口(名为&#34; window&#34;)的帧速率设置为每秒60帧。