Monogame - 如何使我的if语句循环?

时间:2016-06-06 15:38:39

标签: c# .net xna monogame

这个问题的标题可能听起来很愚蠢,但请先阅读整个问题,是的,我知道所有类型的循环,我能够使用完美的时候编程。

我正在构建一个2D游戏,当我的player与一个尖刺碰撞时,我想要另一个角色慢慢行走(这很难解释,但这无关紧要),但这里是代码为它:

 if (player.Bounds.Intersects(anneTrigger.Bounds))
 {
      Anne.UpdateForAnne(gameTime);  
      Anne.LoadHumanContent(Content);
 }

简要解释代码,条件检查player是否与anneTrigger尖峰相撞,然后调用Anne.UpdateForAnne(gameTime)Anne.LoadHumanContent(Content),这会激活角色并制作角色漫步,这就是我想要的,并且完全正常

有什么问题?

问题是,只有当player在钉子上时才会有效,一旦我的player走过钉子,其他角色就会停止行走,这是不是我想要的。只要玩家已经与尖峰相撞,我就需要它继续。

我试图使用循环而不是if语句,但这只会导致我的游戏崩溃。我确定我可能不得不使用一个布尔值,但是我不太确定如何,我之前尝试过,但它不起作用。

1 个答案:

答案 0 :(得分:2)

在更新方法之外的类中设置bool变量。

private bool AnneActivated = false;

if (player.Bounds.Intersects(anneTrigger.Bounds))
{
   AnneActivated = true;
}

if(AnneActivated)
{
   Anne.UpdateForAnne(gameTime);  
   Anne.LoadHumanContent(Content);
}