首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++ DirectXTK随时间变化的SpriteTint

C++ DirectXTK随时间变化的SpriteTint
EN

Stack Overflow用户
提问于 2017-01-04 00:45:03
回答 0查看 61关注 0票数 0

因此,对于一个大学项目,我希望在特定的时间范围内尝试改变精灵的色调。目标是让一组岩石在5秒内从灰色变成橙色(模拟加热它们),然后在接下来的5秒内再次从橙色变成灰色(模拟冷却它们)。

这是使用DirectXTK,特别是SpriteBatch来完成的,但是我似乎在控制加热和冷却逻辑方面遇到了一些问题。目前,岩石加热到橙色,但不会冷却回来。

岩石的更新功能,以及我用来控制冷却的进一步的HeatDelay功能包括在下面。

timeToChangeColour在5处初始化。

代码语言:javascript
复制
void RockFade::Update(float timeDelta)
{

    if ((timeDelta >= timeToChangeColour) && (heatDelay == false))
    {
        this->heatUp = false;
        HeatDelay();
        timeToChangeColour = timeDelta + 10;
    }
    else if ((timeDelta < timeToChangeColour) && (heatDelay == false))
    {
        this->heatUp = true;
    }

    if (heatUp)
    {
        this->newBlue  -= 0.002f;
    }
    else
    {
        this->newBlue += 0.002f;
    }

    this->spriteTint = DirectX::SimpleMath::Color{ 1.0f, 1.0f, newBlue, 1.0f};
}

void RockFade::HeatDelay()
{
    heatDelay = true;
    Sleep(5);
    heatDelay = false;
}

任何帮助都是非常感谢的!

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41448322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档