0

プログラムに実行させたいのは、.txt ファイルに表示される各ポイントでグラフィック グラウンドを描画することですが、実行するたびにスプライトが描画されませんか?

ここにコードがあります.....

        using (StreamReader sr = new StreamReader("trainingLevel.txt"))
        {
            while (!sr.EndOfStream)
            {
                string line = sr.ReadLine();
                string[] elements = line.Split(',');
                foreach (string e in elements)
                {
                    int id = int.Parse(e);
                    if (id == 1)
                    {
                        CreatePlatform(x, y);
                    }
                    x += widthPlatform;

                }
                y += heightPlatform;
                x = 0;
            }
        }


    public void CreatePlatform(int x, int y)
    {

        groundSprite = new Sprite();
        groundSprite.Position = new Vector2(x, y);
        groundSprite.Load("Ground", Content, simulator);
        groundSprite.IsStatic = true;
        groundSprite.Geom.OnCollision += OnCollision;


    }



protected override void Draw(GameTime gameTime) {
    GraphicsDevice.Clear(Color.CornflowerBlue);

    spriteBatch.Begin();
    List<Sprite> updateDraw = new List<Sprite>();
    foreach (Sprite z in updateDraw) {
        simulator.Update(gameTime.ElapsedGameTime.Milliseconds * .001f);
        z.Update(gameTime);
        spriteBatch.Draw(z.CurrentTexture, z.Position, null, Color.White, z.Rotation, z.Origin, 1, SpriteEffects.None, 1);
    }

    spriteBatch.End();

    base.Update(gameTime);
    base.Draw(gameTime);
}
4

3 に答える 3

3

問題は次のとおりです。

List<Sprite> updateDraw = new List<Sprite>();

updateDrawもちろん、この時点ではゼロの要素が含まれます。

foreach (Sprite z in updateDraw)

その後、まったく何もしません。

ただし、実際にそこで何をしようとしているのかはまったくわかりません。そのため、それを理解して修正するのはあなた次第です。

于 2010-02-16T00:20:41.280 に答える
1

あなたの foreach ループは空のリストを列挙しています - updateDraw をクラスのメンバーにして、描画されるたびに再作成するのではなく、シーンの進行に合わせてアイテムを追加/削除したいでしょう。

于 2010-02-16T00:21:03.200 に答える
1

では、新しい空のスプライト リストを作成し、この空のリストを反復処理して [存在しない] オブジェクトをすべて描画しても、画面には何も表示されませんか?

おそらく、描画する何かを与えてみてください。

編集:私はそれに殴られたようです;)

于 2010-02-16T00:21:26.833 に答える