0

ゲームオブジェクトを作成するためのクラスがあり、スプライトを取得して....ゲームオブジェクトを作成します。そして、私はこのようにテクスチャを描きます:

spriteBatch.Begin();
    foreach (GameObject gameObject in Game.gameObjects)
    {
        if (gameObject.visible)
        {
            spriteBatch.Draw(gameObject.sprite.texture, gameObject.rect, gameObject.sprite.sourceRect, gameObject.color, MathHelper.ToRadians(gameObject.rotation), gameObject.sprite.origin, gameObject.spriteEffect, gameObject.layer);
        }
    }
    foreach (Text text in Game.texts)
    {
        spriteBatch.DrawString(text.font, text.text, text.position, text.color, MathHelper.ToRadians(text.rotation), text.origin, text.scale, text.spriteEffects, text.layer);
    }
    spriteBatch.End();

これを行う何らかの方法を試して、ゲームの間に新しいオブジェクトを作成します。たとえば、スペースを押したときに新しい弾丸を作成したい。しかし、Game 間で新しい GameObject を作成することはできません。私を助けてください。

ありがとう。

更新: ゲームの実行中に別のゲーム オブジェクトを追加しようとしています。Game.gameObjects は Game1 の静的リストであり (Game1 の名前を Game に変更します)、それは GameObject クラスにあります:

public GameObject(Sprite sprite)
        {
            this.sprite = sprite;
            rectWidth = (int)sprite.texture.Width;
            rectHeight = (int)sprite.texture.Height;
            rect = new Rectangle((int)position.X, (int)position.Y, rectWidth, rectHeight);
            Game.gameObjects.Add(this);
        }

そのため、ゲーム内のゲーム オブジェクトを取得してレンダリングしたり管理したりできます。それから私はgameObjectsがリストであり、ゲーム内のすべてのgameObjectsを持っています

4

1 に答える 1

0

ゲームの実行中に別のゲーム オブジェクトを追加しようとしていますか? 質問が不明確で申し訳ありません。

あなたの Game.gameObjects が配列なのかリストなのかわかりません (クラスを投稿して、どこで初期化できますか?)

Game.gameObjects.Add(new GameObject(Sprite, position, whatever));

もしかして?

于 2012-08-25T12:14:39.697 に答える