gpt4 book ai didi

c++ - 错误 : cannot call member function 'sf::Time sf::Clock::getElapsedTime() const' without object

转载 作者:行者123 更新时间:2023-12-02 10:06:21 26 4
gpt4 key购买 nike

 void update(bool moright, bool moleft)
{
Clock Clock();
if (moright == true){
xvel = 5;
}
if (moleft == true){
xvel = -5;
}
if (!(moright || moleft)){
xvel = 0;
}
sf::Time t1 = seconds(0.1f);
Time time1 = Clock::getElapsedTime() // error 1 here
while (time1 << 0.16666666);
time1 = clock::getElapsedTime(); // error 2 here
}

返回:错误:不能调用没有对象的成员函数 'sf::Time sf::Clock::getElapsedTime() const'
并且:错误:“时钟”不是类、命名空间或枚举
sfml 和 c++ 的新手,如果这是一个愚蠢的问题,我们深表歉意。

最佳答案

Clock Clock();

让我们调用你的 sf::Clock实例化与该类名不同的东西,例如 clock .虽然这不是错误,但它可能会令人困惑。
Clock clock();

另外,请注意,这一行对于编译器来说可能是模棱两可的,因为它看起来像一个名为 clock 的函数原型(prototype)。 ,不带参数并返回 sf::Clock实例。只需删除括号。
Clock clock;
sf::Time t1 = seconds(0.1f);
t1没有在这个功能中使用,可以删除。
Time time1 = Clock::getElapsedTime()

此行正在尝试调用 静态函数 getElapsedTime . sf::Clock类没有这样命名的静态函数,只有 成员函数 .此调用以及 while 之后的调用循环是您描述的编译器错误的原因。
Time time1 = Clock.getElapsedTime()

它仍然不好。注意丢失的 ;在行尾。
Time time1 = Clock.getElapsedTime();
while (time1 << 0.16666666);

您使用了运算符 <<在这里,这是“按位左移”运算符。您的意思是“小于”运算符( < ),但是因为您想检查是否经过了特定的时间,您应该使用“大于”运算符( > )。
while (time1 > 0.16666666);

但这仍然行不通,因为 time1sf::Time瞬间,你无法比较 sf::Time带浮子。您必须调用 asSeconds time1 的成员,它将以秒为单位的耗时作为浮点数返回。
while (time1.asSeconds() > 0.16666666);

更重要的一件事,你把 ;在该行的末尾,这意味着 while循环有一个空的主体,它将永远运行(如果 time1 不大于 0.16666666 )。您必须删除最后的分号,如果循环,您的下一行将成为正文。
while (time1.asSeconds() > 0.16666666)
time1 = clock::getElapsedTime();

此行替换 time1 的值结果为 getElapsedTime .你的意思是 添加time1 的耗时,您可以通过替换 = 来实现与 += .
time1 += Clock::getElapsedTime();

上面的行仍然包含另外两个错误。和以前一样, sf::Clock没有名为 getElapsedTime 的静态函数, 加 clock在您的代码中不存在(只是 Clock 大写 C )。
time1 += Clock.getElapsedTime();

我在这里假设你想等待一段特定的时间过去,这个 while环形。为此,您可以使用 sf::sleep 功能。
sf::sleep(sf::seconds(0.16666666f));

关于c++ - 错误 : cannot call member function 'sf::Time sf::Clock::getElapsedTime() const' without object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60025271/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com