Game.IsKeyDown 的 If 语句未按预期工作
If statement with the Game.IsKeyDown not working as intended
编辑:我使用下面的代码修复了它。
我正在尝试做一个简单的 if 语句来查看玩家是否接近火力。如果他靠近火并且没有按下键,他将受到指示的伤害。这非常有效。但是,如果按下该键,玩家仍会受到伤害。
伤害布尔值在 class 上方定义为 static bool damage = false;
if (isPlaying)
{
player.Stop();
Game.LocalPlayer.Character.IsFireProof = false;
}
else
{
player.PlayLooping();
Game.LocalPlayer.Character.IsFireProof = true;
}
当玩家靠近开火位置并且按下按键不受到伤害时,我应该怎么做?
这里我们没有太多可以继续的内容,但我认为你在这里混淆了你的逻辑。
按键确保 Game.LocalPlayer.Character.IsFireProof = true
它应该只用于执行此操作,并且可能在您目前提供给我们的代码之外。
那么您的代码将是:
if (Vector3.DistanceSquared(Game.LocalPlayer.Character.Position, locationData.GoToPosition) < 10f )
{
if( Game.LocalPlayer.Character.IsFireProof != true)
{
Game.LocalPlayer.Character.Health -= 1;
}
}
** 编辑 **
好的。根据您的评论。
我不确定 Game.IsKeyDown(...)
returns 键是否按下是否正确。
因为在逻辑语句中放置函数调用不是很好的做法,因为它们很难调试尝试:
if (Vector3.DistanceSquared(Game.LocalPlayer.Character.Position, locationData.GoToPosition) < 10f )
{
bool damage != Game.IsKeyDown(Settings.SCBA);
if( damage == true)
{
Game.LocalPlayer.Character.Health -= 1;
}
}
如果按下或释放按键没有效果,那么 Game.IsKeyDown
没有按照您的预期进行。
编辑:我使用下面的代码修复了它。
我正在尝试做一个简单的 if 语句来查看玩家是否接近火力。如果他靠近火并且没有按下键,他将受到指示的伤害。这非常有效。但是,如果按下该键,玩家仍会受到伤害。
伤害布尔值在 class 上方定义为 static bool damage = false;
if (isPlaying)
{
player.Stop();
Game.LocalPlayer.Character.IsFireProof = false;
}
else
{
player.PlayLooping();
Game.LocalPlayer.Character.IsFireProof = true;
}
当玩家靠近开火位置并且按下按键不受到伤害时,我应该怎么做?
这里我们没有太多可以继续的内容,但我认为你在这里混淆了你的逻辑。
按键确保 Game.LocalPlayer.Character.IsFireProof = true
它应该只用于执行此操作,并且可能在您目前提供给我们的代码之外。
那么您的代码将是:
if (Vector3.DistanceSquared(Game.LocalPlayer.Character.Position, locationData.GoToPosition) < 10f )
{
if( Game.LocalPlayer.Character.IsFireProof != true)
{
Game.LocalPlayer.Character.Health -= 1;
}
}
** 编辑 **
好的。根据您的评论。
我不确定 Game.IsKeyDown(...)
returns 键是否按下是否正确。
因为在逻辑语句中放置函数调用不是很好的做法,因为它们很难调试尝试:
if (Vector3.DistanceSquared(Game.LocalPlayer.Character.Position, locationData.GoToPosition) < 10f )
{
bool damage != Game.IsKeyDown(Settings.SCBA);
if( damage == true)
{
Game.LocalPlayer.Character.Health -= 1;
}
}
如果按下或释放按键没有效果,那么 Game.IsKeyDown
没有按照您的预期进行。