首页 > 其他分享 >基于QT实现的RPG连连看

基于QT实现的RPG连连看

时间:2022-09-28 11:56:15浏览次数:83  
标签:连连看 QT 道具 模式 玩家 RPG 激活 游戏

基于QT实现的RPG连连看

QLink(连连看)

在连连看游戏中,会有⼀个地图,地图上有许多不同种类的⽅块,通过将相同种类的两个⽅块相连,可以将这两个
⽅块消除,⽤户获得分数。
在整个连连看的过程中,除了处理⽤户的操作之外,还有⼏个⽐较特殊的部分特别需要注意:
随机地图的⽣成
判断两个⽅块是否可以通过两次以内的折线进⾏连接判断剩余⽅块是否还有解
除此之外,具体的功能要求如下:

RPG 机制

不同于传统的连连看,我们的 QLink 使⽤ RPG 模式进⾏,即玩家需要控制⼀个⻆⾊在地图的空地上移动(⻆⾊显示可⾃⾏选择)。
激活:当⻆⾊处于⽅块旁且再次向⽅块⽅向移动,会激活该⽅块(请使⽤某种⽅式表示该⽅块被激活)。
消除:如果此次激活的⽅块和上次激活的⽅块是同种类,且可以通过两次以内的折线连接,则该两个⽅块被消 除,玩家获得分数。(请绘制出将两个⽅块连接在⼀起的折线) 否则,上次激活的⽅块被⾃动变为未激活状态,换句话说,每个⻆⾊在地图中只有 0 个(游戏刚开始时,或刚刚消除完⼀对⽅块时)或者 1 个激活的⽅块。
计分
不同种类的⽅块可以有不同的分值,具体规则可以⾃⾏制定。界⾯中应时刻显示玩家的分数。
倒计时和游戏结束
有两个情况可以导致游戏结束:

  • 1.倒计时结束;
  • 2.没有可消除的⽅块对(所有⽅块均被消除也属于这⼀种)。
    界⾯中应时刻显示游戏的倒计时。

开始菜单

⾄少包括以下按钮: 开始新游戏
可选择游戏模式:单⼈模式、双⼈模式(具体看后⽂)
载⼊游戏
退出游戏

单⼈模式

游戏开始时,会随机⽣成地图,并随机玩家⻆⾊位置。随后玩家可控制⻆⾊移动,以激活和消除⽅块。
道具
道具通过随机⽅式出现在地图的空地上,当⻆⾊与道具出现在同⼀位置时,该⻆⾊触发道具效果,道具消失。
+1s: 延 ⻓ 剩 余 时 间 30s Shuffle:所有⽅块位置重排
Hint:10s 内会⾼亮⼀对可能链接的⽅块,被消除后会⾼亮下⼀对,直到 10s 时间结束
Flash:5s 内允许通过⿏标单击移动⻆⾊位置,⻆⾊移动到的位置必须通过空地可到达,否则点击不产⽣任何效果。如果点击到⽅块,且⻆⾊可以移动到该⽅块旁,则⻆⾊移动到该⽅块旁,且该⽅块被激活。如果⽅块四 周有多个位置可以让⻆⾊停留,则⻆⾊移动到其中任何⼀个位置均可。

双⼈模式

两个玩家的两个⻆⾊在相同的地图上进⾏游戏,以结束游戏时双⽅的分数决定谁为赢家。
道具
在单⼈模式的基础上,增加:
Freeze:对⼿ 3s 内⽆法移动
Dizzy:对⼿ 10s 内移动⽅向颠倒(上下左右颠倒)
此外,
Hint 道具的效果对两个玩家均可⻅;
+1s 道具的效果对两个玩家均有效。双⼈模式下,没有 Flash 道具
暂停和存档
在暂停时,可以保存游戏(Save)和载⼊游戏(Load)
保存游戏会将当前游戏的所有状态以任意格式保存到磁盘上的⽂件 载⼊游戏时,读取⽂件,并从中恢复状态

开发环境

  • 语言:C++
  • 框架:Qt 5.12

玩家模式选择

模式选择.png

单人模式演示

单人模式.gif

双人模式演示

双人模式.gif

重新排列演示

重新排列.gif

存档和读档演示

存档和读档.gif

源码传送门

传送门:https://pan.baidu.com/s/1Orl6ZSPqEY9H0mRvpE-ACA?pwd=1111

标签:连连看,QT,道具,模式,玩家,RPG,激活,游戏
From: https://www.cnblogs.com/codewriter/p/16737490.html

相关文章

  • 如何从官网下载QT5开源版离线安装包
    一、浏览器访问qt官网地址https://www.qt.io二、点击DevelopmentTools三、点击DownloadQt四、点击Goopensource五、点击DownloadtheQtOnlineInst......
  • Qt实战15.构建网络拓扑图
    1需求描述基于Qt图形视图框架开发一个网络拓扑模块,用于可视化展示、控制HUB(类似于交换机)与NODE(类似于连接到交换机上的设备)的关系网路。2设计思路先来看个图:这里将......
  • Qt-工程打开后,编译提示“error: member access into incomplete type 'Ui::MainWindow
    问题现象:之前程序都是可以正常运行的,编译也没有错误提示。今天打开工程后,提示“error:memberaccessintoincompletetype'Ui::MainWindow'”问题原因:原因:访问到不完整......
  • QT——qss对多个控件设置想同样式
    QToolButton#minBtn:hover,QToolButton#maxBtn:hover,QToolButton#restoreBtn:hover{background:rgb(255,255,255);}QToolButton#minBtn:pressed,QToolBut......
  • Qt Table Widget常用操作 添加复选框控件
    QtTableWidget常用操作一、鼠标悬浮在item上显示提示信息 1、在构造函数开启tableWidget控件的鼠标捕获功能//开启鼠标捕获功能(实现tablewidget的悬浮功能)......
  • 一文入门Qt Quick
    以下内容为本人的著作,如需要转载,请声明原文链接微信公众号「englyf」https://www.cnblogs.com/englyf/p/16733091.html初识QtQuick很高兴可以来到这一章,终于可以开始......
  • MQTTX_测试调用
    1、软件下载链接:https://pan.baidu.com/s/1I4gJvY9bNWmAe4zGXSS_ow 提取码:a3rl2、切换语言 3、填写连接信息 4、订阅 ......
  • mqtt的使用
    1.mqttws31.js/********************************************************************************Copyright(c)2013IBMCorp.**Allrightsreserved.This......
  • qt的基本控件——显示控件
    显示控件1、label作用就是用来显示一些文字的,或者用来贴图1、加载资源方式:右键项目-->addnew输入名字,就能得到一个qrc的一个包,然后在这个位置添加前缀/image表示图......
  • Qt 开发应用程序Debug与Release设置
    一般来说,release版的可执行程序在体积上比起debug版要小很多(数倍甚至数十倍的差异),而且由于剥离了许多调试信息及符号等运行效率相对也高一些。然而在使用Qt开发中偶尔......