1

我想创建一个简单的游戏,让我的角色可以行走、跳跃、射击。但是我陷入了如何从另一个类调用更新方法的问题上?目前我所有的代码都在 Game.cs (主类)中,但我想根据我的需要创建不同的类。我怎样才能做到这一点?

4

2 回答 2

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;
     }
}
于 2013-05-17T11:28:43.360 回答
0

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

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

如果您阅读本教程的第一部分,您将获得您的问题所需的确切示例。

于 2013-05-17T11:23:25.747 回答