来自其他类的XNA Update方法

时间:2013-05-17 11:16:41

标签: c# xna

我想创造一个简单的游戏,我的角色可以走路,跳跃,射击。但是我被困在如何从另一个类调用更新方法?目前我的所有代码都在Game.cs(主类)中,但我想根据我的需要创建不同的类。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

您的更新代码每秒自动调用多次(取决于您的帧速率)。 与使用事件并且必须自己更新的常规C#编程不同,在XNA中,更新代码将每隔几毫秒循环一次。

如果您想让其他课程自行更新,您可以使用GameComponent,或者只是在另一个课程中创​​建方法。

以下是您的主要课程的示例:

public class Game1 : Game
{
    Level level;

    protected override void Initialize()
    {
        // TODO: Add your initialization logic here
        level = new Level();
        base.Initialize();
    }
    protected override void Update(GameTime gameTime)
    {
        // TODO: Add your update logic here
        level.Update(gameTime);
        base.Update(gameTime);
    }

您的其他Level课程

public class Level
{
     Vector2 CharacterPosition;
     public Level()
     {
     }
     public void Update(GameTime gameTime)
     {
           float elapsed = (float)gameTime.ElapsedGameTime.TotalSeconds;
           //Move the character
           ChactacterPosition.X += elapsed * speed;
     }
}

答案 1 :(得分:0)

你可以使用update.c和draw方法创建自定义类来调用来自game.cs的每个更新。 这是开始学习xna的最佳地点:

http://xbox.create.msdn.com/en-US/education/tutorial/2dgame/getting_started

如果您完成本教程的第一部分,您将获得您的问题所需的示例。