我有一个Main类和一个GameScreen类。在GameScreen类中,我有一个让用户返回主菜单的按钮。但是,我的gotoMainMenu函数位于Main类中。我尝试将gotoMainMenu函数设为静态,但在该函数内部我调用非静态函数。
目前我有这段代码将gotoMainMenu函数传递给我的gameScreen对象:
gameScreen = new GameScreen(gotoMainMenu);
在GameScreen构造函数中,我将其分配给实例变量,然后使用该实例变量作为第二个参数添加事件侦听器,如下所示:
backArrowButton.addEventListener(MouseEvent.CLICK, gotoMainMenuMainFunction);
这是一个好方法吗?如果没有,您能否提供另一种不被认为是错误编码的解决方案?
我有另一个非常相似的问题。我有一个Hero类,它需要访问我的GameScreen类中的许多变量。我知道静态变量是一种解决方法,但有人告诉我这是不好的编码,静态变量只能用于常量。
目前,我将实例变量作为参数传递,如下所示:
hero = new Hero(levelData, map, gameCont);
然后在Hero类中,我将这些参数分配给实例变量,这与我传入函数的方式非常相似。这些变量引用同一个对象。我需要将原始数据类型传递给 onEnterFrame 函数,如下所示:
hero.onEnterFrame(up, left, right, mouse);
这样做的问题是我不喜欢将引用同一对象的实例变量存储在 2 个单独的类中。我觉得有更好的方法来做到这一点。请提供这两个问题的解决方案,并确保它不被视为错误编码。