C# 如何在monogame(xna)中制作单循环动画?

C# 如何在monogame(xna)中制作单循环动画?,c#,.net,animation,xna,monogame,C#,.net,Animation,Xna,Monogame,动画类的更新方法: public void Update(GameTime gameTime) { Timer += gameTime.ElapsedGameTime.Milliseconds; if (Timer > FrameTime){ CurrentFrame++; if (CurrentFrame == TotalFrames) {

动画类的更新方法:

    public void Update(GameTime gameTime)
    {
        Timer += gameTime.ElapsedGameTime.Milliseconds;
        if (Timer > FrameTime){
            CurrentFrame++;
            if (CurrentFrame == TotalFrames)
            {
                CurrentFrame = 0;
                Done = true;
            }
            Timer = 0;
        }
    }

如何调整此代码使动画成为单循环?

您正在将
Done
设置为true,这很好,但您忘记使用该变量再次检查。
因此,如果
Done
为false,您应该在第一个if语句中添加一个:

if (Timer > FrameTime && Done == false) {

如果
Done
equals为false,则只需添加到第一个if语句中。这会中断动画。我需要的情况下,当上一个关键点是向下的,当前关键点是向上(按键)播放动画一次,为移动我举行必要的关键点和动画成为循环。啊,你正在使用同样的方法循环动画以及。这是行不通的,你需要用两种方法将单循环动画和循环动画分开。(或者你需要传递一个参数来定义单循环和多循环之间的区别)那么你能给我一点建议吗?因为我花了很多时间,没有找到任何有用的信息。我找到了解决方案,不需要更改动画类更新逻辑,只需要在角色类中修复逻辑。很高兴听到它已经为您解决了。您可以选中我答案左侧的复选框,将此问题标记为已解决。