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