导航

俄罗斯方块的游戏中关于自定义图形监听器ShapeListener

我的理解是:

1、关于继承接口:接口里的方法本来就是抽象方法,你ShapeListener就算继承Listener也不覆盖它的抽象方法,因为ShapeListener里的方法必须也是抽象的,所以ShapeListener不需要继承什么接口。


2、整个游戏摘要流程:

前提Shape中添加了addShapeListener接口的方法,Controller类实现了ShapeListener接口,并覆盖它的方法isShapeMoveDownable,所以Controller是ShapeListener的子类

(1)主函数Game中语句controller.newGame();

(2)而Controller中的public void newGame(){
shape = shapeFactory.getShape(this);

}该方法调用getShape方法,传入的参数是this,即是Controller

(3)ShapeFactory中getShape(ShapeListener listener)方法new了新图形,并对图形添加shape.addShapeListener(listener)


自此可看出,shape.addShapeListener(listener)添加的监听器其实是Controller

如图: