• 黑马程序员——俄罗斯方块的游戏中关于自定义图形监听器ShapeListener


    俄罗斯方块的游戏中关于自定义图形监听器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

    如图:


  • 相关阅读:
    ubuntu16.04左边栏图标效果设置
    VMware虚拟机 Ubuntu 16.04 安装 VMware Tools
    微信换取openid的值
    thinkphp关于T方法
    Think关于循环的事
    base64格式转换为图片
    Think视图模型格式
    thinkphp里多表事务
    ThinkPHP数据库驱动之mysql事物回滚
    webhook是啥?
  • 原文地址:https://www.cnblogs.com/kuyuyingzi/p/4266433.html
Copyright © 2020-2023  润新知