XNA:如何从另一个类更改变量值?

时间:2015-10-11 01:09:24

标签: c# properties

我正在XNA中制作一个Shoot' Em Up游戏。我制造了一个关卡系统,每一分钟,等级都会升高,敌人的速度会提高。

在我的主类(Game1.cs)中我有提高级别的方法,在Enemy类中我有一个变量public int speed = 2;,用于更新敌人

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

Game1课程中,我有这个方法

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

我想在Enemy.speed += 2;添加一行,但它不会让我。

另外,我在Enemy

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

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

2 个答案:

答案 0 :(得分:1)

因为你在getter&amp ;;中没有做任何特别的事情。 Speed属性的setter,您应该将语法切换为Auto-Property,如下所示:

public int Speed { get; set; }

这样,您就不需要私有字段speed,因此不会在2之间混淆。

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

答案 1 :(得分:0)

添加Enemy.Speed += 2而非Enemy.speed并在Enemy课程中将变量设为私有。