开课吧-智能物联网训练营Day2-QT布局和植物与僵尸类构造
文章目录
- 布局
- 植物和僵尸类
- 音乐播放
- 秃头僵尸类
- 总结
昨晚的东西比较多,所以面向流程的博客不合适了。所以我这里分成布局和植物与僵尸类构造。
这里也从逻辑上解释一下昨天的内容吧,稍微看了一点scene,view和item的关系。
这里也只是我的理解。这种理解其实是基于opengl的。
view是视角,scene是实际的场景,而item是场景中的元素。
view是我们观察场景的眼睛,比如说3d游戏中,我们可以任意转换视角,这个视角应该就是view。
scene是实际的场景,而场景又和物体密不可分,在3d游戏中,不管怎么转换视角,实际上的场景是不变的,虽然看到的东西可能不一样。
再举个例子:盲人摸象,大象是场景,是不随视角变化而变化的,而盲人们的视角是局限的,虽然是同一个大象,却能摸到不同的东西。
说起来难道《纪念碑谷》就是利用了转视角的同时变场景所以才那么反直觉?
如果是这样的话,那昨晚那个动画应该转视角而不是转场景。
所以在代码中,GameView包含GameScene作为成员变量
昨天之后,我的代码也做了一点点重构,我觉得重要的是最终结果一致,代码要规范。
布局
做布局。看了帮助文档,有所感悟,布局其实只是一个管理view大小的工具。类似于scene和item的关系,既是容器和内容物的关系,又是管理器和被管理元素的关系。
然后为了处理resize信息:
上图的按个scrollContentsBy是重写函数。主要防止通过滚轮之类的滚动。重写为空函数即可。呃。这个程序写出来,虽然不能滑动了,但是窗口的内容可能随着拖动变化。。。好晕。
这里,我本来想做一个固定视窗大小,然后窗口的改变是固定比例的,从而视窗的大小也是固定比例的。但是。。发现挺难的。没找到解决方案。
传入的event信息,没用到,所以不用include。
再取消滚动条。设置一下最小值
然后我的结果如下:
这里还看不到房子。因为焦点在图片的中心。
这里可以看到view的scale是放大自己看到的图像的大小。相当于在眼睛前面放了个放大镜?
然后为了能看到房子和顺便秀动画:
以上两行代码加在scene中,是对backgroundItem做操作。其实吧,我觉得对view操作更合理。不过这其实无所谓了。毕竟相对运动。此外。要把所有的元素都放在backgroundItem身上。这样才不会出现除草机和背景的相对运行。
这个Animate函数是老师写的。所以需要包含头文件。
这个函数应该挺好理解。老师说是动画的元素,动画的形式,速度和结束。
我理解就是一个主体以什么样的速度做什么样的事情。这里就是背景以0.5的速度做平移。
最终结果:
植物和僵尸类
如何描述僵尸,有什么属性,有什么方法,如何表现。
首先介绍一下音乐的播放。。。
音乐播放
需要包含额外的模块。然后才能include。
播放的代码如下:include的头文件请使用refactor或者点那个灯泡include。不容易出错。
这份代码是开场音乐。所以加在scene的构造函数或者初始化函数中。
方法是初始化一个播放器,然后传入资源文件。最后播放播放器。显然,这只放一遍。
说起来很像是以前用磁带机听歌。拿个磁带机,把磁带放进去,按播放。
很多音视频播放都是这一套逻辑。名字也都差不多。
下面首先考虑属性。
初始化函数和构造函数的实现没什么可说的,可以全写为空函数。
老师是使用工厂设计模式,所以该类只是一个原型,通过这个原型,会生成各种各样的僵尸。
秃头僵尸类
然后需要对秃头僵尸的具体属性进行设置。
僵尸实例:注意很多都是方法。
即Zombie及其子类只是定义了僵尸拥有的属性,
最后的picture会保存当前僵尸的显示形式,可能是站立,也可能是行走。该类是老师编写的。player一次只能播放一个音乐,所以为了同时播放多个音乐必须制作多个player。
有一个warning就是c++初始化的顺序和初始化列表没啥关系而是和在类中定义的顺序有关。。所以如果二者不一致,QT会警告你。不过结果没影响。只要保证picture在music之前定义就行了。
然后实现生成僵尸方法,设置显示形式(picture)。设置位置。开始(播放动图)。
然后添加到我们的场景中。
中途我也出现了一个没有编译错误的运行错误,重新构建就好了。
最终。注意。这里是删除了第二个动画的结果。以便展示zombie。
总结
布局:布局,resize。
动画:虽然只是用
音乐:全平台通用逻辑
植物与僵尸类:时间所限只用了一个小僵尸,可以去看看工厂模式是咋回事来重构自己的代码。感觉有点混乱。
感觉等级不如状态来的好,比如撑杆跳僵尸有杆状态下才能跳,还有被冰豌豆火焰攻击等等。不过这样部分状态就是和僵尸的种类相关了,似乎也不是一个好方法。
嗯。冰火应该额外加个函数处理。撑杆跳这种可以通过加入一个额外的变量判断杆子在不再手?防护装备可以通过判断hp修改。不过有技能的僵尸就比较麻烦了。还得加个冷却时间等等的。
开课吧-智能物联网训练营Day2-QT布局和植物与僵尸类构造相关推荐
- 这几年爆火的智能物联网(AIoT),到底前景如何?
作者:郭斌 刘思聪 於志文 来源:大数据DT(ID:hzdashuju) 当前物联网.大数据和人工智能技术的快速发展与加速融合,催生出智能物联网(Artificial Intelligence of ...
- 中科创达怎么样-是外包公司吗-智能网联汽车和智能物联网推动业务快速增长
公司主营业务成长性显著,营业收入 2011-2021 年均复合增速达 44.4%,智能软件 业务保持稳健增长,智能物联网和智能网联汽车成为公司主要业务增长引擎 公司 2021 年实现营业收入 41.2 ...
- 智能物联网 Linux C/C++工程师,具备哪些技能才能轻松应对面试
关注.星标公众号,不错过精彩内容 来源:开课吧新职课 今年因为疫情,企业大多在缩招,毕业生们被坑得不轻. 现在,公司在招聘开发岗时很挑剔,尤其是招聘应届生,相比之前的要求高了很多,而且还总想压薪资. ...
- 重“薪”定义世界,智能物联网+区块链新学科强势入驻深圳
智能物联网,相信大家都不陌生,列举些身边经常见到的应用:铁道部列车车厢管理.第二代身份证.一卡通.ETC不停车收费系统.物流查询和追踪.无人驾驶卡车.智能手表.智能电视.智能电子秤及智能手环等等穿戴式 ...
- 走进人工智能| 智能物联网 AIoT的魅力交织
前言: AI+IoT是指人工智能(AI)与物联网(IoT)的结合.智能物联网是一种技术体系,通过连接和集成物理设备.传感器和互联网,实现设备之间的智能交互和数据共享,为人们提供智能化.自动化和高效化的 ...
- 智能物联网(AIoT,2020年)(下)
智能物联网(AIoT,2020年)(下) 12工业物联网是AIoT在工业领域第一战场 工业物联网分为感知.决策.执行,OS与软件是大脑+神经 13工业场景下一步如何使用AIoT 不止工业物联网:用人工 ...
- 智能物联网(AIoT,2020年)(中)
智能物联网(AIoT,2020年)(中) 05 中国AIoT产业图谱 06 中国AIoT商业模式 标准程度越低人力和时间成本投入越多,2B2C模式附加值高 07 中国AIoT玩家分布简介 四类玩家,优 ...
- 智能物联网(AIoT,2020年)(上)
智能物联网(AIoT,2020年)(上) 中国AloT的概念与现状 01智能物联网(AIoT)定义 人工智能与物联网的协同应用 02 AIoT2025产业瞭望:家庭AI管家 智能家居交互方式无感化,跨 ...
- 百度第七期智能对话训练营来了!
↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale学习 组织方:百度大脑,方向:智能语音客服 在智能化发展的大趋势下,越来越多的 ...
最新文章
- 圆桌问题 2011-12-29
- 关于IE6,奇数宽高的BUG
- Java接口存在的意义以及如何解决菱形继承问题
- why my own list cannot automatically scroll to load oData
- 使用JUnit的ExpectedException和@Rule测试自定义异常
- Chapter7-4_來自獵人暗黑大陸的模型 GPT-3
- MapReduce 编程实践:统计对象中的某些属性
- MFC工程使用flash控件
- MySql的架构和历史
- mysql所选路径已经存在_Win10环境下安装压缩包版本MySQL-8.0.13
- 日期 时间差 java_Java8中计算日期时间差
- 【蓝桥杯真题】蓝桥杯真题之旋转
- 企业图纸共享办公系统哪个好
- Ubuntu中报错:failed to create hard link
- python定义一个变量为整型怎么写_python里怎么定义一个变量
- android星星闪效果,使用Canvas绘制星星闪烁的效果
- 操写一盒酥三字于盒上
- JAVA面试八股文宝典(黑马学习随笔)-- 基础篇
- 知识付费小程序源码可开激励广告流量主+虚拟资源变现+附带视频教程
- INTERSPEECH 2018 | 语音识别技术之说话人自适应技术