一、游戏画面
使用了 QGraphicsView, QGraphicsScene, QGraphicsItem等部件,没有使用Qt提供的Ui Designer。主要原因是 QGraphicsView, QGraphicsItem直接支持鼠标点击、拖动等事件,可拓展性较好,而普通的label加载图片如果需要响应比较复杂的事件,实现起来比较麻烦。但另一方面,由 于使用了QGraphicsItem,导致难以再加入布局管理器,所以在调窗口大小上遇到了比较大的困难。
游戏一共有八个界面。分别是“欢迎”、“编辑卡组”、“选择卡组”、“替换手牌”、“游戏”、“回合结 束”、“游戏结束”、“选择界面”(对应某些牌的效果)。每一个界面都是一组QGraphicsScene 和 QGraphicsView。
二、游戏操作
2.1 编辑卡组
游戏多可以存储四套卡牌,可以在开始游戏之前选择使用哪一套。点击选卡界面“横栏”的左右按钮可以实现翻页,点击卡片就可以将卡片加入或移除卡组。组卡完毕后,如果卡牌数量满足要求, 点击确认即可保存卡组。
2.2 选择卡组
点击图片即可选择卡组,默认使用第一套卡组。点击“确认”,开始游戏。
2.3 替换手牌
鼠标滚乱滑动可实现手牌翻页,点击手牌即可替换手牌。替换完成后,点击“确定”,即可进入游戏对战环节。
2.4 游戏对战
点击手牌中的卡片选中手牌,如果是随从,点击场上特定位置选择随从放到的位置,如果该随从有效果,则触发效果(选择其他卡牌,或者选择某一列,或者生成某些牌),之后可看到该随从已经置于场上。
当手牌为空时,自动放弃跟牌,长按空格放弃跟牌。
参考文档和完整的文档和源码下载地址:
https://www.write-bug.com/article/1355.html