这个问题的标题可能听起来很愚蠢,但请先阅读整个问题,是的,我知道所有类型的循环,我能够使用完美的时候编程。
我正在构建一个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语句,但这只会导致我的游戏崩溃。我确定我可能不得不使用一个布尔值,但是我不太确定如何,我之前尝试过,但它不起作用。
答案 0 :(得分:2)
在更新方法之外的类中设置bool变量。
private bool AnneActivated = false;
if (player.Bounds.Intersects(anneTrigger.Bounds))
{
AnneActivated = true;
}
if(AnneActivated)
{
Anne.UpdateForAnne(gameTime);
Anne.LoadHumanContent(Content);
}