XNA:如何更改另一个 class 的变量值?

XNA: How do I change a variable value from another class?

我正在用 XNA 制作 Shoot'Em Up 游戏。我正在制作一个等级系统,每一分钟,等级都会提高,敌人的速度也会增加。

在我的主class(Game1.cs)我有增加等级的方法,在EnemyClass我有一个变量public int speed = 2;用于更新敌人

public override void Update()
{
    base.pos.Y += speed;
}

Game1class,我有这个方法

public void LevelSystemUpdate()
{            
    if (timer > 60f)
    {
        level += 1;
        timer = 0f;
    }
}

我想在那里添加一行 Enemy.speed += 2; 但它不允许我这样做。

此外,我在 Enemy class

中有这个
public int Speed
{
    get
    {
        return speed;
    }
    set
    {
        speed = value;
    }
}

但我不知道如何让它发挥作用。谢谢你们!

添加 Enemy.Speed += 2 而不是 Enemy.speed 并将变量设为私有 Enemy class.

由于您在 Speed 属性 的 getter 和 setter 中没有做任何特殊的事情,您应该将语法切换到 Auto-Property如下:

public int Speed { get; set; }

这样,您就不需要私有字段 speed,因此不会混淆两者。

为避免将来出现此类错误,您可以为私有变量使用命名模式(例如:m_speed,其中 "m" 代表成员)。