如何在此访问器中使用该变量?

时间:2012-12-15 06:36:37

标签: c# accessor

我正在尝试使用访问器,因为在我看来,这是实现我想要做的唯一方法。这是我的代码:

Game1.cs

public class GroundTexture
{
    private Texture2D dirt;
    public Texture2D Dirt
    {
        get
        {
            return dirt;
        }

        set
        {
            dirt = value;
        }
    }
}

public class Main : Game
{
    public static Texture2D texture = tile.Texture;
    GroundTexture groundTexture = new GroundTexture();
    public static Texture2D dirt;

    protected override void LoadContent()
    {
        Tile tile = (Tile)currentLevel.GetTile(20, 20);

        dirt = Content.Load<Texture2D>("Dirt");
        groundTexture.Dirt = dirt;

        Texture2D texture = tile.Texture;
    }

    protected override void Update(GameTime gameTime)
    {
        if (texture == groundTexture.Dirt)
        {
            player.TileCollision(groundBounds);
        }

        base.Update(gameTime);
    }

}

我从LoadContent和Update函数中删除了无关信息。

在以下行中:

if (texture == groundTexture.Dirt)

我收到错误

Operator '==' cannot be applied to operands of type 'Microsoft.Xna.Framework.Graphics.Texture2D' and 'Game1.GroundTexture'

我是否正确使用了存取器?为什么我会收到此错误? “污垢”是Texture2D,所以它们应该具有可比性。

这使用了一个名为Realm Factory的程序中的一些函数,它是一个tile编辑器。数字“20,20”只是我在下面所做的级别的样本:

http://i.stack.imgur.com/d8cO3.png

tile.Texture返回精灵,这里是内容项Dirt.png

非常感谢!

0 个答案:

没有答案