【问题标题】:Max/Msp Past object in C++ (increment a value when a threshold is passed)C++ 中的 Max/Msp Past 对象(超过阈值时增加一个值)
【发布时间】:2014-10-26 14:40:43
【问题描述】:

我来自 Max/Msp,它有一个名为“过去”的对象,当超过阈值时它会增加一个变量。 (就像一个触发器)

我想在 C++ 中做同样的事情,但我不知道如何...

例如,我想将 x 设为变量,将 y 设为计数器:when x>100, y=y+1;

这个我试过了,还是不行:

x++;
cout << "x = " << x << endl;
if (x>100){bang=1;}
cout << "bang = " << bang << endl;
if(bang == !bang){y++;}
cout << "y = " << y << endl;
if (y > 0){cout << "done" << endl; }

【问题讨论】:

    标签: c++ triggers max counter increment


    【解决方案1】:

    嗯,首先 bang == !bang 将始终为 false(考虑强制转换为布尔值,当 bang 为 1 时被认为是 true,!bang 将为 false,因此它不会相等)。

    如果你想使用数字的逆位运算,你可以使用 tilda 运算符“~”

    创建触发器的方法有很多种,但最简单的方法应如下所示:

    static bool triggerFired=false;
    void runLoop(int curX, int &yRef)
    {
        curX++;
        if (curX > 100 && !triggerFired)
        {
            triggerFired = true;
            yRef++;
        } 
    }
    

    静态布尔值的目的是使触发器只触发一次,而不是每次在 x > 100 之后触发。

    【讨论】:

      猜你喜欢
      • 2023-04-10
      • 2015-08-08
      • 2020-12-03
      • 1970-01-01
      • 2021-10-29
      • 2021-06-04
      • 2017-04-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多