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

update メソッドと draw メソッドを使用してカスタム クラスを作成し、game.cs から更新されるたびに呼び出すことができます。これは、xna の学習を開始するのに最適な場所です。

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

チュートリアルの最初の部分を完了すると、質問に必要な例が正確に得られます。

于 2013-05-17T11:23:25.747 に答える