QT---实现小球游戏(零基础入门)
本文章基本全代码敲窗口小球游戏,最后会免费加上源代码,让读者有更清晰的了解
内容主要覆盖:
1> Qtimer计时器的开始和结束,以及显示系统时间等等。。。
2> 多个Qwidget布局和背景颜色调配
3>小球撞板反弹和小球撞板在Qwidget中分数的传递(就是小球撞一次板,分数加一,并且还要显示出来)
注:有基础的读者最好先想一下困难点在哪里,并仔细看代码中是如何实现的,本文对于QT学习是一个大的突破,毕竟全代码,后面还有一个舒尔特方格,下次再补上来.
基本窗口就是这样,下面直接开始介绍函数吧(0基础摸索画了一天时间,我自己都被自己蠢哭!)
步骤一:我弄简单一点,做一个大的vbox垂直布局,里面包括了下面的downwidget和hbox水平布局,hbox水平布局又包括了time和upwidet(这里hbox和vbox是系统自带函数,downwidget,time,upwidget是要自己写的小部件,就是为了排列好看,才有了上面的布局)
hbox = new QHBoxLayout;hbox->addWidget(time);topWidget->setFixedHeight(30);time->setFixedHeight(30);hbox->addWidget(topWidget);vbox = new QVBoxLayout();vbox->addLayout(hbox);vbox->addWidget(bottomWidget);setLayout(vbox);resize(800, 600);palette.setBrush(this->backgroundRole(), Qt::lightGray);this->setPalette(palette);
步骤二: time里面加入系统时间(关键),upwidget里面加入label(这里我说一下,如何实现小球撞板分数就加一呢?关键在于球的横纵坐标等于挡板的横纵坐标即相撞时,就要发出一个myscore的信号,然后mainwidget里面接到,传给upwidget,upwidget里面的变量加1,再输出就实现啦!)downwidget里面加入小球运动的函数就可以了
time:
QDateTime time = QDateTime::currentDateTime();QString str = time.toString("yyyy-MM-dd hh:mm:ss dddd");label->setText(str);
upwidget:
upscore++;labelScore->setText(QString("Score: %1 ").arg(upscore));
downwidget:
(小球运动的代码太过简单,所以很多,这里不写,读者直接看压缩包)
步骤三:设置背景,前2步最重要吧,背景什么的就是为了好看,2个按钮也只需要加个timer.stop()之类的就可以了
void UpWidget::paintEvent(QPaintEvent *event){Q_UNUSED(event);QPainter p(this);p.setPen(Qt::NoPen);p.setBrush(Qt::yellow);p.drawRect(rect()); }
总结:按照老师要求,本游戏可以实现挡板档球,每挡一次分数加一,显示时间,让球停止,让球加速,整体布局的功能,主要内容就是先布局 widget,然后在每一个widget里面分别操作,互不干扰,唯一影响的就是传分数,上面说了一遍,我再说一下,读者可能还是很疑惑,就是downwidget是无法传分数的,只需要发一个信号(函数)就可以了,然后mainwidget实现的是一种中转站的功能,把upwidget和downwidget联系起来,接收他的信号,让变量+1,再显示在label上面就可以了,很简单的一个游戏,但是我这个垃圾从0开始,搞了一天才搞完,有问题再讨论。
博客园上面好像传不了压缩包啊,没办法啦,传到网盘去吧,以后留个纪念!
链接: https://pan.baidu.com/s/1o799EjC 密码: ijyw
转载于:https://www.cnblogs.com/meditation5201314/p/7751472.html
QT---实现小球游戏(零基础入门)相关推荐
- 贪吃蛇的使命之零基础入门贪吃蛇游戏(附演示地址)
作者: C you again,从事软件开发 努力在IT搬砖路上的技术小白 公众号: [C you again],分享计算机类毕业设计源码.IT技术文章.游戏源码.网页模板.程序人生等等.公众号回复 ...
- 零基础入门3D游戏建模师知识必备
入门3D游戏建模师 随着国内游戏市场的蓬勃发展,行业对于游戏建模的需求在不断增加,相信很多想要进入游戏行业的小伙伴,想做3D游戏建模师,又不知道该如何去做,今天小编就带大家聊一聊关于零基础入门建模须要 ...
- 〖Python零基础入门篇(64)〗- 小案例 - 猜拳游戏与数字猜猜猜
订阅 Python全栈白宝书-零基础入门篇 可报销!白嫖入口-请点击我.推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V! 说明:该文属于 Python全栈白宝书专栏,免费阶段订阅数量43 ...
- 零基础学python pdf-Python pdf(零基础入门学习Python)V1.0 最新版
Python pdf(零基础入门学习Python)是一款功能强劲专业实用的Python电子书籍.想要零基础入门学习Python?那就快试试绿色先锋小编推荐的Python pdf最新版下载使用.由作者小 ...
- 零基础学python 视频_零基础入门学习PYTHON(第2版)(微课视频版)
小甲鱼畅销图书重磅升级,针对Python 3.7,通过生动的实例,让读者在实践中理解概念,在轻松.愉快中学会Python! 本书提倡理解为主,应用为王.因此,只要有可能,小甲鱼(注:作者)都会通过生动 ...
- Task01——零基础入门NLP - 新闻文本分类之赛题理解
本篇目标 首先本篇文章会对赛题进行介绍以及个人对赛题的理解,带大家接触NLP的预处理.模型构建和模型训练等知识点. 赛题介绍 赛题名称:零基础入门NLP - 新闻文本分类 赛题任务:赛题以自然语言处理 ...
- 零基础入门学习Python(33)-图形用户界面编程(GUI编程)EasyGui
用户界面编程,即平时说的GUI(Graphical User Interface)编程,那些带有按钮.文本.输入框的窗口的编程 EasyGui是一个非常简单的GUI模块,一旦导入EasyGui模块,P ...
- 零基础入门NLP - 新闻文本分类
本文是对阿里云新人竞赛中的"零基础入门NLP - 新闻文本分类"解体过程进行的记录,目前仅使用了textCNN模型进行预测,后续还会考虑使用LSTM进行对比. 赛题数据 赛题以新闻 ...
- python零基础入门教程视频下载-Python零基础入门学习视频教程全42集,资源教程下载...
课程名称 Python零基础入门学习视频教程全42集,资源教程下载 课程目录 001我和Python的第一次亲密接触 002用Python设计第一个游戏 003小插曲之变量和字符串 004改进我们的小 ...
- python基础教程视频教程百度云-Python零基础入门学习视频教程全42集百度云网盘下载...
课程简介 Python零基础入门学习视频教程全42集百度云网盘下载 课程目录 042魔法方法:算术运算 041魔法方法:构造和析构 040类和对象:一些相关的BIF 039类和对象拾遗 038类和对象 ...
最新文章
- 如何使网站的右键失效
- Bootstrap3.1开发的响应式个人简历模板
- black.lst 丢失或被破坏,怎么解决
- Sql Server函数全解二数学函数
- [css] 怎么给手持设备添加特殊样式?
- linux隐藏特定进程,linux 隐藏进程
- js数组常用方法总结(包括ES6)
- C#6.0VISUALSTUDIO 2015 C#入门经典 第7版pdf
- 浅议 Web 表单设计
- android 电脑 共享文件夹,安卓手机如何访问电脑局域网共享的文件
- 今天中午吃什么转盘html,吃到撑的几种简单午饭,让你再也不发愁吃什么了!...
- 腾讯云微服务引擎 TSE 11月产品动态
- H5+css+js前端特效源代码:发光动画按钮:上传按钮
- 今天开始做战斗,回合制战斗代码实现第一篇补充,从头开始,简单的2d回合制游戏一些文档方面的知识
- Java练习习题,百钱买百鸡问题,用100文钱买鸡,公鸡5文钱一只,母鸡3文钱一只,小鸡3只1文钱
- SV学习(1)——数据类型
- sublime配置python开发环境以及遇到的坑(附终极解决方案)
- IDEA 学生授权申请方式(免费)
- java 彩票走势图算法
- 数据仓库架构的发展进程