Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# XNA中跟随鼠标的精灵动画_C#_Animation_Xna - Fatal编程技术网

C# XNA中跟随鼠标的精灵动画

C# XNA中跟随鼠标的精灵动画,c#,animation,xna,C#,Animation,Xna,我以前的问题是,我的代码本来可以很好地跟踪鼠标,但当它到达鼠标时,它就崩溃了,最终消失了 我现在的问题是,当我试图用if语句修复旧的一个时,精灵坐在它的“静止”框架中,跟随鼠标直到再次到达它,然后发疯 if ((distanceX < 1 && distanceY < 1) || (distanceX < 1 && distanceY > -1) || (distanceX > -1 && distan

我以前的问题是,我的代码本来可以很好地跟踪鼠标,但当它到达鼠标时,它就崩溃了,最终消失了

我现在的问题是,当我试图用if语句修复旧的一个时,精灵坐在它的“静止”框架中,跟随鼠标直到再次到达它,然后发疯

if ((distanceX < 1 && distanceY < 1)
    || (distanceX < 1 && distanceY > -1)
    || (distanceX > -1 && distanceY < 1)
    || (distanceX > -1 && distanceY > -1))
    walkCurrent = still;
else {
    if (velocity.X <= 0 && velocity.X > velocity.Y)
        walkCurrent = walkForward;
    else if (velocity.X <= 0 && -velocity.X < velocity.Y)
        walkCurrent = walkBack;
    else if (velocity.X <= 0 && -velocity.X > velocity.Y)
        walkCurrent = walkLeft;
    else if (velocity.X >= 0 && -velocity.X > velocity.Y)
        walkCurrent = walkForward;
    else if (velocity.X >= 0 && velocity.X < velocity.Y)
        walkCurrent = walkBack;
    else if (velocity.X >= 0 && velocity.X > velocity.Y)
        walkCurrent = walkRight;
    if (elapsed >= delay) {
        if (frames >= 3) {
            frames = 0;
        }
        else {
            frames++;
        }
        elapsed = 0;
    }
}

回答了我自己的问题

if ((distanceX < 1 && distanceY < 1)
    || (distanceX < 1 && distanceY > -1)
    || (distanceX > -1 && distanceY < 1)
    || (distanceX > -1 && distanceY > -1))
    walkCurrent = still;
if((距离x<1和距离y<1)
||(距离X<1和距离Y>-1)
||(距离X>-1和距离Y<1)
||(距离X>-1和距离Y>-1))
步行电流=静止;

这不包括0处的墙,因此始终为真。现在我只需要想一想如何摆脱紧张和程序关闭。精灵消失

你说的紧张是什么意思?
if ((distanceX < 1 && distanceY < 1)
    || (distanceX < 1 && distanceY > -1)
    || (distanceX > -1 && distanceY < 1)
    || (distanceX > -1 && distanceY > -1))
    walkCurrent = still;