交汇点有时候不会发生

时间:2013-11-09 13:22:25

标签: windows-phone-7 xna-4.0

我正在使用以下代码,其中samosarect是一个从右到左以一定速度(假设每循环10px)的对象,舌头是我的玩家的舌头,其增加到200宽度并再次减少到当舌头是真的时,舌头才会增加,当我按下按钮时,舌头布尔变为真。所以我的问题有时我的玩家(舌头)不吃(不与samosarect相交)samosa(我用眼睛看那个矩形相交但我的代码没有得到那个),有时它(与正确的动画相交)吃samosa没有任何问题。

if (Texture.samosarect.Contains(Texture.tonguerect) ||      Texture.tonguerect.Intersects(Texture.samosarect) && tongue)
            {
            Texture.tonguerect.Y = -50;
            System.Diagnostics.Debug.WriteLine("eated samosaaa");
            Texture.samosarect.X = -400;
            eateds = true;
            jumpframe = 17;
            tonguereached = true;
            caught = true;
            if (MainPage.togkey == 1)
                eateffect.Play();

            if (!catchedd)
            {
                score += 30; catched++; catchedd = true;
                showpoint = true;

            }
            else { catchedd = false; }

        }

1 个答案:

答案 0 :(得分:0)

对于一般情况,thisthis可以为您提供帮助。

算法描述为here

如果要完全谈论xna,请查看here

if (ballRect.Intersects(bat1Rect))
{
    ballVelo.X = Math.Abs(ballVelo.X) * -1;
}

if (ballRect.Intersects(bat2Rect))
{
    ballVelo.X = Math.Abs(ballVelo.X);
}