![](/img/trans.png)
[英]In XNA, how do I modify something in the main game class from another class?
[英]XNA: How do I change a variable value from another class?
我正在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;
}
}
但是我不知道如何使它工作。 感謝大伙們!
由於在Speed
屬性的getter和setter方法中沒有做任何特別的事情,因此您應該按照以下方式將語法切換為Auto-Property
:
public int Speed { get; set; }
這樣,您將不需要專用字段speed
,因此不會在2之間混淆。
為避免將來發生此類錯誤,您可以為私有變量使用命名模式(例如:m_speed,其中“ m”代表成員)。
添加Enemy.Speed += 2
而不是Enemy.speed
並將變量設置為Enemy
類的私有變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.