0

下图显示了玩家的负面生命......因为与途中的障碍物相交......我想要的解决方案是在相交后只减少一点生命。

        if (Texture.playerrect.Intersects(Texture.mirchirect) || Texture.playerrect.Intersects(Texture.crabrect) || Texture.playerrect.Intersects(Texture.stonerect) || Texture.playerrect.Intersects(Texture.cactusrect))
        {
            die = true;
           currentframe = 19;

        }
        else { die = false; }


        if (die)
        {
          life -= 1;
        }
4

3 回答 3

2

也许是因为代码每秒更新 60 帧die == true,然后你的对象的生命将每秒减少 60,而不是 1。

于 2013-10-23T08:19:57.640 回答
1

可能的方法...向您的障碍物添加一个布尔变量PlayerHitted,并在发生碰撞时设置life -= 1ifPlayerHitted为 false(默认情况下)并更新PlayerHitted为 true。

这样,如果障碍物击中玩家,它们就会有信息

于 2013-10-23T08:47:33.267 回答
0
          if (Texture.playerrect.Intersects(Texture.mirchirect) || Texture.playerrect.Intersects(Texture.crabrect) || Texture.playerrect.Intersects(Texture.stonerect) || Texture.playerrect.Intersects(Texture.cactusrect))
        {
            die = true;
            currentframe = 19;
            if (!Update)
            {
                life--;
                Update = true;
            }


        }
        else { die = false; Update = false; }
于 2013-10-23T10:35:50.610 回答