如何在MonoGame的其他类中使用Game1类中声明的变量

时间:2014-04-09 16:29:53

标签: c# xna monogame

我试图在另一个类中使用Game1.cs中声明的变量。

为简化起见,我创建了一个新项目,并希望操纵int变量x。 我在Object reference not set to an instance of an object.

获得game.x = 0;

我是C#的新手,任何人都可以告诉我问题是什么,以及如何解决?

这是班级:

class Class1
{
    Game1 game;

    public void init()
    {
        game = new Game1();
    }

    public void Update()
    {
        game.x = 0;
        game.x++;
    }
}

这是我在Game1.cs

中的代码
public int x = 0;
Class1 y = new Class1();
    //other stuff
protected override void Initialize()
        {
            y.init();
            base.Initialize();
        }
// Other stuff...
        protected override void Update(GameTime gameTime)
        {
            y.Update();
            base.Update(gameTime);
        }

1 个答案:

答案 0 :(得分:2)

我建议做一些编程教程。以这种方式操纵公共领域几乎没有充分的理由。然后,还有一个命名问题。什么是x?整个窗口的水平位置?一些对象?还有别的吗?尽可能明显,它会很适合你。

实际问题可能是游戏在更新时为空,这看起来很奇怪。如果您真的想这样做,我建议您将Class1.Update修改为Class1.Update(Game1 game)。然后你可以y.Update(this)

但是,这绝对是解决问题的错误方法。你可以做得更好。请注意这一点。