github的开源项目推荐(项目推荐第四弹)
github的开源项目推荐(项目推荐第四弹)一个用Qt实现的打怪、升级、爬塔的小游戏,是男人就上20层。https://github.com/Armour/Magic-Tower-Qt下面是我编译以后试用的动态图,但是我发现不能播放歌曲,可能是长时间没人维护了,网易云的API版本太低的问题,我也没有详细的定位,但是实现方法和思路还是很有借鉴意义的。https://github.com/raptorswing/MapGraphics用Qt编写的基于图块的“草绘地图”库。它的目的是使C / Qt开发人员能够轻松地向其应用程序添加漂亮的交互式地图。
https://github.com/what951006/KuGouDemo
用Qt实现的高仿酷狗音乐。个人觉得比下面推荐的QtMusic质量要高,相应的难度也要大一些。其实这个项目我早就发现了,而且之前还在里面提取了左侧那个自定义的tab窗口控件用在了我自己的项目中。
https://github.com/AndyQsmart/QtMusic-1.0
Qt QtMusic是基于Qt C 实现的,编译后支持跨平台运行编写的音乐播放器。包含歌曲播放,歌单管理,歌词显示以及网络歌曲和换肤等功能,界面友好。
- 歌曲播放使用Qt自带的媒体库实现了歌曲的播放,支持mp3,wma等音乐格式。
- 歌单管理使用Qt自带的图形库实现了歌单管理的界面,重写了一些事件函数,实现了新建歌单,拖拽歌曲,歌曲高亮等功能。使用Qt封装的SQLite数据库,实现了歌曲,歌单的存档。
- 歌词显示通过手写字符串匹配解析了lrc格式的歌词文件,然后通过二分查找实现了显示某时刻的歌词。
- 网络歌曲利用网易音乐API,通过post和get方法获得歌曲,并使用QMediaPlayer直接播放网络歌曲。
下面是我编译以后试用的动态图,但是我发现不能播放歌曲,可能是长时间没人维护了,网易云的API版本太低的问题,我也没有详细的定位,但是实现方法和思路还是很有借鉴意义的。
https://github.com/raptorswing/MapGraphics
用Qt编写的基于图块的“草绘地图”库。它的目的是使C / Qt开发人员能够轻松地向其应用程序添加漂亮的交互式地图。
https://github.com/Armour/Magic-Tower-Qt
一个用Qt实现的打怪、升级、爬塔的小游戏,是男人就上20层。
- GUI:主要使用QGraphicsview。
- 数据库:连接到本地sqlite数据库。
- 作弊:您可以在“作弊”中选择作弊选项!菜单,然后随心所欲。XD(GodMode =>与怪物战斗不会降低您的HP,但会增加它!)
- 性别:不同的性别具有不同的基本属性。
- 商店:您可以在此处购买诸如hp,攻击,各种钥匙之类的东西。
- 书籍:您可以抬起头来,在这层楼上更多地了解怪物,“预期的损坏”非常有帮助。
- 错过 暴击:战斗中会出现一些随机的错过或致命伤害,因此没有绝对的最佳结果。
- BGM:使用qmediaplayer(尚未完全完成,因此我仅使用示例BGM)。
- NPC:他们会给你一些建议。
- 升级:杀死足够的怪物,您将升级,所以要勇敢!
- 帮助:游戏开始后,您可以按“ h”键寻求帮助。
- 不同的结尾:有三个不同的结尾,希望您能找到一个不错的:)
使用C /QT图形视图框架开发的贪吃蛇游戏,类似于之前手游上挺火的贪吃蛇大作战。
https://github.com/pbek/qmarkdowntextedit
QMarkdownTextEdit是一个C 的Qt QPlainTextEdit小部件,支持Markdown高亮和其他一些功能。
- Markdown突出显示
- 代码语法高亮
- 点击链接 Ctrl Click
- 与Tab和一起缩进Shift Tab
- 与重复的文字 Ctrl Alt Down
- 用搜索文本 Ctrl F使用Up和在搜索结果之间跳转Down使用关闭搜索字段 Escape
- 用替换文本 Ctrl R您也可以用正则表达式或整个单词替换文本
- 非常快
- 以及更多...
https://github.com/madplotlib/madplotlib
Qt图表的c 包装器,外观像matplotlib,但不是。
Madplotlib是一个c 头文件库,提供简单的2D绘图功能,类似于Python的matplotlib。Madplotlib在背后使用Qt图表来呈现外观很酷的图,这些图很容易在Eigen的帮助下创建。
使用时,确保使用Qt 5.7或更高版本,并且已正确安装Eigen3.x。之后,只需将Madplotlib.h添加到您的项目中,用法如下:
Eigen::ArrayXf a = Eigen::ArrayXf::LinSpaced(20 0 2000);
Eigen::ArrayXf b = Eigen::ArrayXf::LinSpaced(20 0 100);
Eigen::ArrayXf c = Eigen::ArrayXf::Zero(20);
b = b * b;
c = 1000;
Madplotlib plt;
plt.title("Test 5: Linear vs Exponential vs Flat");
plt.ylabel("Y Values");
plt.xlabel("X Values");
plt.plot(a QString("label=Linear"));
plt.plot(b QString("label=Exponential"));
plt.plot(c QString("label=Flat"));
plt.legend("loc=center right");
plt.show();
效果图: