我从头开始制作游戏用户界面,而不是为许多类似对象创建一个类,例如FPS和得分计数器。 我是否可以创建一个允许我以类似于覆盖按钮上的onClick()方法的方式覆盖基本tick方法的类?
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());
}}));
随时告诉我,只要你能指出我正确的方向,我就会完全走错路。任何和所有的帮助表示赞赏!
答案 0 :(得分:0)
这样做的一种方法是创建一个在其构造函数中使用接口的类。然后,当您实例化该类时,您将传递接口的实现作为匿名类,就像您在示例中传入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
}
});