我有一个名为attack
的布尔值,只要按下Q
按钮,它就会设置为true(Q
是攻击)
我使用断点尝试自己解决问题。将attack
设置为true的代码行正在运行,但是实际上并没有将attack
设置为true ... XNA我是新手,所以很抱歉如果这是一个明显的解决方案。这是代码.. :(请注意,我遗漏了很多与问题无关的代码)
public class Player
{
Animation playerAnimation = new Animation();
public void Update(GameTime gameTime)
{
keyState = Keyboard.GetState()
if (keyState.IsKeyDown(Keys.Q))
{
tempCurrentFrame.Y = 0;
*** playerAnimation.Attack = true; *** This line of code runs yet doesn't actually work
}
public class Animation
{
bool attack;
public bool Attack
{
get { return attack; }
set { value = attack; }
}
public void Update(GameTime gameTime)
{
if (active)
frameCounter += (int)gameTime.ElapsedGameTime.TotalMilliseconds;
else
frameCounter = 0;
if (attack) ***This never turns true***
switchFrame = 50;
就像我之前说的,我使用断点进行检查,并且所有代码都可以运行,攻击变量没有任何反应,我不确定为什么不这样做。
我有一个类似的bool,称为active,具有所有相同的属性和链接的代码,但是bool确实会更新,这就是为什么我会如此卡住。
感谢您的时间。
最佳答案
set
访问器中的逻辑是向后的。您需要将字段attack
分配给设置器的值,而不是相反
set { attack = value; }