我有一个名为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; }

10-08 17:21