我正在从头开始制作游戏UI,而不是为许多类似的对象创建一个类,例如FPS和分数计数器。我是否可以创建一个类来覆盖它们的基本tick方法,就像覆盖按钮上的onClick()方法一样?
hudUIManager.addObject(new UIImageButton(handler, handler.getWidth()/2-128, handler.getHeight()/2-32, 64, 64, Assets.button_menu, new ClickListener(){
@Override
public void onClick() {
State.setState(handler.getGame().getMenuState());
}}));
只要你能给我指明正确的方向,你可以随意告诉我,我做这件事的方式完全错误。感谢您的帮助!
实现这一点的方法是创建一个在构造函数中使用接口的类。然后,当您实例化该类时,您将以匿名类的形式传入接口的实现,就像您在示例中传入ClickListener时所做的那样。
例如,接口可能类似
public interface Ticker() {
public void doTick();
}
那么基类可能是类似的东西
public class TickObject() {
private Ticker ticker;
public TickObject(Ticker ticker) {
this.ticker = ticker;
}
public void doTick() {
ticker.doTick();
}
}
然后,当你想创建一个TickerObject的实例时,它将如下
TickObject tickerObject = new TickObject(new Ticker(){
@Overide
public void doTick() {
// implement
}
});