我正在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;
}
}
但我不知道如何让它发挥作用。谢谢你们!
答案 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
课程中将变量设为私有。