没有封闭的实例我需要解决方案

时间:2015-03-30 21:30:48

标签: static libgdx

我的英语不好。 所以我正在做一个游戏,我有问题。 (Libgdx,但确实无关紧要) SolarGame是一个主类,它是一个输入处理程序。 TesterClass有一个render方法。 闪电正在产生一些数据。

public  class SolarGame implements  ApplicationListener, InputProcessor {
TesterClass testerClass;
bool inputbool = false; //That bool is change, when event is happen

public bool getBool(){
   return inputbool
}

public void create () {
    testerClass = new TesterClass();
}
//some other code here

public class TesterClass {

Lightning lightning;

public void _init_() {
    lightning = new Lightning();
}
//Some code here

public class Lightning {

    public Lightning() {
        bool input = SolarGame.this.getBool();
//This line cause an error.

如果将SolarGame更改为静态,我会收到其他一些错误。 但我需要在Lightning类中访问inputbool。 当事件发生时,我需要停止Lightning数据生成方法。

再次嘲笑我的英语。

1 个答案:

答案 0 :(得分:1)

所以如果我明白这一点你需要在Lightning课程中使用SolarGame的一个实例吗?因为很难理解实际问题是什么,代码也没有多大帮助。

在Lightning中获取SolarGame的实例非常简单。你只需在创建照明时传递它:

public class Lightning{ 

SolarGame game;

public Lightning(SolarGame game){
      this.game = game;
}
}

现在,您可以毫无问题地访问 inputbool ,而无需将任何类更改为静态:

bool inputbool = game.getBool();

由于您在 TesterClass 中创建了 Lightning 类,因此您需要将 SolarGame 的实例传递给 TesterClass 与上述方法相同。

我希望我已经解决了你的问题