0

我正在使用 XNA Shooter Starter 工具包并想为项目添加封装

我已经了解如何对整数等项目执行此操作,您可以在其中封装字段以便原始值不受影响......但是您如何使用方法来做到这一点?

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;
    }

我在一个类中有上述方法......在另一个类中它用于各种其他方法,其中一个如下所示

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”方法的第二行

如果我将初始化方法更改为私有或公共,我会收到错误消息,指出 AddExplosion 方法由于其保护级别而无法访问它

所以请记住,我想添加封装在这种情况下我将如何做呢?

在这方面我相对较新,所以请保持答案简单

提前致谢

4

1 回答 1

0

“封装”一个方法的方法是将它放在另一个方法中,然后引用第一个方法。

也就是说,我不明白你为什么要这样做。

于 2013-03-22T17:44:32.153 回答