【发布时间】:2019-05-21 14:03:45
【问题描述】:
我把它写成一个占位符,知道它不会起作用:
While(true)
if (red > 1.0f)
redinc = -0.01f;
if (red < 0.0f)
redinc = 0.01f;
red += redinc;
这是在我的主循环中,我不知道为什么,但它有效,红色从 0 变为 1。但是,当将代码移动到方法时
void Move(float& a) {
float ainc;
if (a > 0.7f)
ainc = -0.05f;
if (a < -0.7f)
ainc = 0.05f;
a += ainc;
确实如此。它完全符合我最初的预期,0.7 - 0.65 - 0.7。
有没有人遇到过这种情况?为什么它首先起作用?
【问题讨论】:
-
函数中的代码没有循环。您需要在函数中包含
while语句(或其他一些循环构造),或者在循环中调用该函数。 -
代码以无限循环开始:
while (true) if (red > 1.0f) redinc = -0.01f;。它永远不会改变red的值。是不是少了一些花括号?
标签: c++ algorithm math geometry