我在XNA拍了一個Shoot'Em Up遊戲。我正在制定一個關卡系統,每一分鐘,關卡都會提升,敵人的速度也會提高。XNA:如何從另一個類中更改變量值?
以我主類(Game1.cs)我有增加水平的方法,而在Enemy
I類具有可變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只是一個對象在我想改變它爲整個班級 –
然後讓它靜態'公共靜態INT速度;' – C1sc0
我覺得你的敵人的速度應該計算在你的程序的其他地方(困難管理課程)難度水平計算, 。對於僅在一個地方進行管理的難點,我建議你使用Singleton模式,或者通過自己實現它或通過IoC來實現它。在我看來,使速度變爲靜態是一種不好的做法。 – KOTIX