目前,我的游戏是这样工作的:
public class TheGame: Microsoft.Xna.Framework.Game
{
public static Level CurrentLevel;
private Level level1, level2, level3;
protected override void LoadContent()
{
level1 = new Level(//param);
level2 = new Level(//param);
level3 = new Level(//param);
}
protected override void Update(GameTime gameTime)
{
If(something)
LoadLevel(level1);
currentLevel.Update(gameTime);
//
}
LoadLevel(Level theLevel)
{
currentLevel = theLevel;
}
}
问题是,当我使用 Update() 修改 currentLevel 时,也会修改 Level1。
For example :
Level1 has a crate with position (100,200).
if currentLevel.Update() modifies the crate's position (120,200),
that modifies the crate's position in CurrentLevel AND the crate's position in Level1.
所以当我重新加载Level1时,这个级别与原来的level1不同。
是因为静态吗?因为我必须克隆 Level1 ?还有什么?:s 感谢阅读。