我正在使用SFML制作简单的格斗游戏。 我有一个叫做Fighter的类,用于制作两个对象。 主要:
Fighter fighterOne;
Fighter fighterTwo;
两个战斗机都修改相同的变量,主要是isLow()和isGuarded()。 要检查两个战斗机之间的碰撞,我在updateFighter()中调用checkHit()(基本上,如果战斗机更新了动作,检查它是否命中了),我在我的crash.h类中检查了碰撞
注意:我发现当前正在使用名为isRight的bool更新哪个战斗机。如果是真的,它将修改第二架战斗机,否则,将修改第一架战斗机。
void Fighter::updateFighter(Sprite& fighter, Sprite& otherFighter, bool isRight)
{
if (Keyboard:isKeyPressed(attack)
{
//animates the attack
collision.checkHit(fighter, otherFighter, isLow, isGuarded, lowAttack, isRight);
}
}
问题是,如上所述,我试图检查对方战斗机对象(fighterTwo)的isLow值。但是当我这样称呼它时,它脱离了当前使用的isLow,它属于fighterOne。如何通过fighterTwo的isLow值而不是fighterOne来检查命中率?