0

XNA Shooter スターター キットを使用しており、プロジェクト用にカプセル化を追加したい

元の値が影響を受けないようにフィールドをカプセル化する、整数などのアイテムに対してそれを行う方法を理解しました...しかし、メソッドでどのように行うのですか?

public void Initialize(Texture2D texture, Vector2 position,
int frameWidth, int frameHeight, int frameCount,
int frametime, Color color, float scale, bool looping)
    {
        // Keep a local copy of the values passed in
        this.color = color;
        this.FrameWidth = frameWidth;
        this.FrameHeight = frameHeight;
        this.frameCount = frameCount;
        this.frameTime = frametime;
        this.scale = scale;


        Looping = looping;
        Position = position;
        spriteStrip = texture;


        // Set the time to zero
        elapsedTime = 0;
        currentFrame = 0;


        // Set the Animation to active by default
        Active = true;
    }

あるクラス内に上記のメソッドがあります...そして別のクラス内では、他のさまざまなメソッドで使用されます。そのうちの1つを以下に示します

private void AddExplosion(Vector2 position)
    {
        Animation explosion = new Animation();
        explosion.Initialize(explosionTexture, position, 134, 134, 12, 45, Color.White, 1f, false);
        explosions.Add(explosion);
    }

ご覧のとおり、メソッド「explosion.initialize」の 2 行目で使用されています。

初期化メソッドをプライベートまたはパブリックに変更すると、保護レベルが原因で AddExplosion メソッドからアクセスできないというエラー メッセージが表示されます。

カプセル化を追加したいことを念頭に置いて、この状況でこれを行うにはどうすればよいでしょうか?

これに関しては私は比較的新しいので、答えを簡単にしてください

前もって感謝します

4

1 に答える 1