XNA:如何更改另一个 class 的变量值?
XNA: How do I change a variable value from another class?
我正在用 XNA 制作 Shoot'Em Up 游戏。我正在制作一个等级系统,每一分钟,等级都会提高,敌人的速度也会增加。
在我的主class(Game1.cs)我有增加等级的方法,在Enemy
Class我有一个变量public int speed = 2;
用于更新敌人
public override void Update()
{
base.pos.Y += speed;
}
在Game1
class,我有这个方法
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" 代表成员)。
我正在用 XNA 制作 Shoot'Em Up 游戏。我正在制作一个等级系统,每一分钟,等级都会提高,敌人的速度也会增加。
在我的主class(Game1.cs)我有增加等级的方法,在Enemy
Class我有一个变量public int speed = 2;
用于更新敌人
public override void Update()
{
base.pos.Y += speed;
}
在Game1
class,我有这个方法
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" 代表成员)。