zoukankan      html  css  js  c++  java
  • Qt版连连看之极速连连看:结构解析

    【github地址】speedlink-qt

    【源码结构说明】

    本来想用Umbrello自动生成类图的,可惜不知道怎么的,我的源码导入之后Umbrello老是死掉,而我又不怎么会画UML图,只好画个概要图了。

    首先说明一下,其实整个的程序,最后就是一个叫做GameWindow的类,各个类都以各种方式集成到其中。

    类的关系:

    screenshot5  

    设计说明:考虑到游戏进行中,面板部分的数据只需要一个地图数据加载之后,其表现、内部逻辑操作都相对独立,基本无需外界干涉,因此独立将其做成了DrawArea类集成到界面类Ui::GameWindow中,没有采用界面逻辑分离的方法。其中有一个好处是能够降低主类设计的复杂度,相关性减少。

    GameWindow与DrawArea之间借助Qt的signal-slot机制进行消息传输,当用户选中了一个图块、消除了若干对图块、进入死局时,DrawArea都会发出信号(signal),GameWindow设置相应的槽(slot)进行响应,而对于用户使用道具等情况,GameWindow中按钮被按下发出信号,DrawArea中也设置了相应的槽进行相应。

    screenshot4

    游戏的界面切换使用了StackedWidget,实际上所有的控件都是分页放置的,当需要切换界面时,只要让用户看到相应的页就可以了。由于DrawArea是继承自QWidget,MyButton继承自QPushButton,在designer中加入QWidget和QPushButton,然后将其相应的变形为DrawArea、MyButton就可以了。

    screenshot1

  • 相关阅读:
    APP界面设计之尺寸介绍
    设计师应该知道的那些事儿(一)
    PS制作高光导航背景
    URL长度限制
    问自己的技术问题
    JavaScript实现生成GUID(全局统一标识符)
    JS操作数组,for循环新技能get
    win7/Win8/Win10, IIS7.5/IIS8/IIS10 配置伪静态
    .NET WebAPI生成Excel
    .net WebAPI 传递对象参数
  • 原文地址:https://www.cnblogs.com/qianyuming/p/2138552.html
Copyright © 2011-2022 走看看