【发布时间】:2020-09-13 16:36:41
【问题描述】:
我在执行插值以将对象移动到屏幕中的某个点时遇到问题。
代码如下:
factor += timer.getElapsedTime().asSeconds() * speed;
for(int i = 0; i < 50; i++) {
circleObjectArray[i].setPosition(Interpolate(movePositionsX[rand() % 5], movePositionsY[rand() % 5], factor));
window.draw(circleObjectArray[i]);
}
我想使用这个 interpolate 函数的主体,但我无法调用它
sf::Vector2f Interpolate(const sf::Vector2& pointA, const sf::Vector2& pointB, float factor) {
if(factor > 1.f)
factor = 1.f;
else if(factor < 0.f)
factor = 0.f;
return pointA + (pointB - pointA) * factor;
}
感谢您的宝贵时间:D
【问题讨论】:
-
您的问题是什么?你有什么问题?代码没有做你想做的事吗?你想让它做什么?它做了什么?
-
“我遇到了麻烦” 并不是一个特别清晰简洁的问题描述。请在此处按要求发布minimal reproducible example。
-
我不小心发布了我现在更新的代码的错误部分,我如何在这个主体上使用 interpolate 函数“ sf::Vector2f Interpolate( const sf::Vector2& pointA, const sf: :Vector2& pointB, float factor ) { if( factor > 1.f ) factor = 1.f; else if( factor
-
我们仍然不知道您为什么“无法调用它”。你得到一个编译器错误吗?请张贴minimal reproducible example 和错误信息
-
它在 setposition 命令中给出了一个错误,说没有声明 interpolate,并且在 sf:Vector2f Interpolate 行中它说在没有参数列表的情况下无效使用模板名称 'sf::Vector2',执行我需要在我的主函数之外声明 vector2f 插值,还是应该为它创建一个类?
标签: c++ interpolation sfml