我正在用XNA編碼我的第一款遊戲,而且我有點困惑。如何加載和卸載關卡
該遊戲是一個2D平臺遊戲,以像素爲完美,不是基於瓷磚。
目前,我的代碼看起來像這樣
public class Game1 : Microsoft.Xna.Framework.Game
{
//some variables
Level currentLevel, level1, level2;
protected override void Initialize()
{
base.Initialize();
}
protected override void LoadContent()
{
spriteBatch = new SpriteBatch(GraphicsDevice);
//a level contains 3 sprites (background, foreground, collisions)
//and the start position of the player
level1 = new Level(
new Sprite(Content.Load<Texture2D>("level1/intro-1er-plan"), Vector2.Zero),
new Sprite(Content.Load<Texture2D>("level1/intro-collisions"), Vector2.Zero),
new Sprite(Content.Load<Texture2D>("level1/intro-decors-fond"), Vector2.Zero),
new Vector2(280, 441));
level2 = new Level(
new Sprite(Content.Load<Texture2D>("level2/intro-1er-plan"), Vector2.Zero),
new Sprite(Content.Load<Texture2D>("level2/intro-collisions"), Vector2.Zero),
new Sprite(Content.Load<Texture2D>("level2/intro-decors-fond"), Vector2.Zero),
new Vector2(500, 250));
...//etc
}
protected override void UnloadContent() {}
protected override void Update(GameTime gameTime)
{
if(the_character_entered_zone1())
{
ChangeLevel(level2);
}
//other stuff
}
protected override void Draw(GameTime gameTime)
{
//drawing code
}
private void ChangeLevel(Level _theLevel)
{
currentLevel = _theLevel;
//other stuff
}
從一開始每個精靈被加載,所以它不是計算機的RAM是個好主意。
好了,這裏是我的問題:
- 我怎樣才能保存自己的數字精靈,它們的事件和對象的水平?
- 如何加載/卸載這些級別?
你說得對,我不應該浪費太多時間。但總是很高興知道。 Thx對於所有這些信息都很重要。 – Sharpnel 2012-07-21 12:25:04
獎勵:在遊戲關卡文件中,您應該保密和完整。前者爲了避免用戶在文件內部偷看以在實際播放它之前知道該級別,後者避免用戶改變級別數據以便在玩它時獲得一些益處 – 2014-04-17 21:17:36