当前位置: 首页 > 知识库问答 >
问题:

与Framerate无关的正弦波图

益炜
2023-03-14

目前,只要FPS处于健康的60平均值,我的正弦波模式就会像预期的那样工作(由于轻微的GIF捕获软件滞后,可能会稍微倾斜):

    null
    null

以下是正弦波法:

private void sineWaveDown(float speed, float amplitude, boolean mirror, float delta){
    HitBox hitBox = getTransform().getHitBox();

    int mirrored = 1;
    if (mirror)
        mirrored = -1;

    Vector2 current = new Vector2(hitBox.x, hitBox.y);

    current.y -= speed * delta;
    current.x += MathUtils.sin(current.y * delta) * amplitude * mirrored;

    hitBox.setPosition(current);
}

在本例中,速度为60,幅度为2。

Hitbox派生自com.badlogic.gdx.math.circle,用于在逻辑上表示您在上面图像中看到的圆。

编辑:问题已经回答。下面是我的工作代码:

private void sineWaveDown(float delta){
    HitBox hitBox = getTransform().getHitBox();

    int mirrored = 1;
    if (config.mirrored)
        mirrored = -1;

    Vector2 current = new Vector2(hitBox.x, hitBox.y);

    current.y -= config.speed * delta;

    elapsedTime = (elapsedTime + delta) % (1/config.frequency);
    float sinePosition = mirrored * config.amplitude * MathUtils.sin(MathUtils.PI2 * config.frequency * elapsedTime + config.phase);
    current.x = config.spawnPosition.x + sinePosition;

    hitBox.setPosition(current);
}

共有1个答案

郎祯
2023-03-14

我还没有找到一个不使用已用时间的好方法来做到这一点。您可以用模数“清理”已用值,以避免在长时间后丢失精度。

elapsed=(elapsed+deltaTime)%(1/frequence);

浮点位置=振幅*mathutils.sin(mathutils.pi2*频率*经过+相位);

 类似资料:
  • 我试图在y有最高值时显示x位置。在if语句中,我试图将y值与120进行比较,但它似乎从来都不是真的,所以它没有使用文本函数显示我的x位置。我也试着取整y值,但结果仍然不是我想要的。有人能帮我吗?

  • 我正在做一个项目,我想通过组合不同的正弦波来产生(简单的)声音。我使用的是arduino mkrZero,因为它内置了I2S接口,似乎有足够的处理能力来满足我的需求。 教程代码工作得很好,我从扬声器中得到了一个简单的方波音调。 现在我修改了生成正弦波的代码,有一个sin函数的查找表,使其足够快: 如果我稍微修改一下代码,然后写 而不是 一切都破裂了,扬声器发出的声音听起来像是可怕的尖叫 //阻塞

  • 我写了一个小函数,它给出了一个基于正弦波的值,当我在0到1之间放一个浮点数时。我用它在游戏中把东西弄得乱七八糟。 它很好用..但我想知道有没有一种数学方法来改变正弦波,这样我就可以让它在中间变得“陡峭”或“浅”?在下面的图中,蓝色曲线是正弦波,我想知道我是否可以让它更像绿线。

  • 用C/C++编写了一个三维正弦波发生器 代码:

  • 我试图生成一组点,当绘制成一个图表示1个周期的正弦波。要求是: 1个周期的正弦波 下限=29491 上限=36043 点数=100 振幅=3276 零偏移量=32767 代码: 我正在生成并存储一个文件中的点。当这些点被绘制出来时,我得到了下面的图。 但我只需要一个循环。我怎么能这么做?

  • 我如何建立一个方程来产生扫频正弦波。我是信号处理新手,在网上找不到太多关于生成扫描正弦波的话题。请告诉我一些我可以用来生成方程式并在代码中使用的源代码。非常感谢。