我想创造一个简单的游戏,我的角色可以走路,跳跃,射击。但是我被困在如何从另一个类调用更新方法?目前我的所有代码都在Game.cs(主类)中,但我想根据我的需要创建不同的类。我怎么能这样做?
答案 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
如果您完成本教程的第一部分,您将获得您的问题所需的示例。