文章目录

  • 布局
  • 植物和僵尸类
    • 音乐播放
    • 秃头僵尸类
  • 总结

昨晚的东西比较多,所以面向流程的博客不合适了。所以我这里分成布局和植物与僵尸类构造。

这里也从逻辑上解释一下昨天的内容吧,稍微看了一点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布局和植物与僵尸类构造相关推荐

  1. 这几年爆火的智能物联网(AIoT),到底前景如何?

    作者:郭斌 刘思聪 於志文 来源:大数据DT(ID:hzdashuju) 当前物联网.大数据和人工智能技术的快速发展与加速融合,催生出智能物联网(Artificial Intelligence of ...

  2. 中科创达怎么样-是外包公司吗-智能网联汽车和智能物联网推动业务快速增长

    公司主营业务成长性显著,营业收入 2011-2021 年均复合增速达 44.4%,智能软件 业务保持稳健增长,智能物联网和智能网联汽车成为公司主要业务增长引擎 公司 2021 年实现营业收入 41.2 ...

  3. 智能物联网 Linux C/C++工程师,具备哪些技能才能轻松应对面试

    关注.星标公众号,不错过精彩内容 来源:开课吧新职课 今年因为疫情,企业大多在缩招,毕业生们被坑得不轻. 现在,公司在招聘开发岗时很挑剔,尤其是招聘应届生,相比之前的要求高了很多,而且还总想压薪资. ...

  4. 重“薪”定义世界,智能物联网+区块链新学科强势入驻深圳

    智能物联网,相信大家都不陌生,列举些身边经常见到的应用:铁道部列车车厢管理.第二代身份证.一卡通.ETC不停车收费系统.物流查询和追踪.无人驾驶卡车.智能手表.智能电视.智能电子秤及智能手环等等穿戴式 ...

  5. 走进人工智能| 智能物联网 AIoT的魅力交织

    前言: AI+IoT是指人工智能(AI)与物联网(IoT)的结合.智能物联网是一种技术体系,通过连接和集成物理设备.传感器和互联网,实现设备之间的智能交互和数据共享,为人们提供智能化.自动化和高效化的 ...

  6. 智能物联网(AIoT,2020年)(下)

    智能物联网(AIoT,2020年)(下) 12工业物联网是AIoT在工业领域第一战场 工业物联网分为感知.决策.执行,OS与软件是大脑+神经 13工业场景下一步如何使用AIoT 不止工业物联网:用人工 ...

  7. 智能物联网(AIoT,2020年)(中)

    智能物联网(AIoT,2020年)(中) 05 中国AIoT产业图谱 06 中国AIoT商业模式 标准程度越低人力和时间成本投入越多,2B2C模式附加值高 07 中国AIoT玩家分布简介 四类玩家,优 ...

  8. 智能物联网(AIoT,2020年)(上)

    智能物联网(AIoT,2020年)(上) 中国AloT的概念与现状 01智能物联网(AIoT)定义 人工智能与物联网的协同应用 02 AIoT2025产业瞭望:家庭AI管家 智能家居交互方式无感化,跨 ...

  9. 百度第七期智能对话训练营来了!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale学习 组织方:百度大脑,方向:智能语音客服 在智能化发展的大趋势下,越来越多的 ...

最新文章

  1. 圆桌问题 2011-12-29
  2. 关于IE6,奇数宽高的BUG
  3. Java接口存在的意义以及如何解决菱形继承问题
  4. why my own list cannot automatically scroll to load oData
  5. 使用JUnit的ExpectedException和@Rule测试自定义异常
  6. Chapter7-4_來自獵人暗黑大陸的模型 GPT-3
  7. MapReduce 编程实践:统计对象中的某些属性
  8. MFC工程使用flash控件
  9. MySql的架构和历史
  10. mysql所选路径已经存在_Win10环境下安装压缩包版本MySQL-8.0.13
  11. 日期 时间差 java_Java8中计算日期时间差
  12. 【蓝桥杯真题】蓝桥杯真题之旋转
  13. 企业图纸共享办公系统哪个好
  14. Ubuntu中报错:failed to create hard link
  15. python定义一个变量为整型怎么写_python里怎么定义一个变量
  16. android星星闪效果,使用Canvas绘制星星闪烁的效果
  17. 操写一盒酥三字于盒上
  18. JAVA面试八股文宝典(黑马学习随笔)-- 基础篇
  19. 知识付费小程序源码可开激励广告流量主+虚拟资源变现+附带视频教程
  20. INTERSPEECH 2018 | 语音识别技术之说话人自适应技术

热门文章

  1. 数加加众包深耕AI第8年,苹果加码人工智能和机器学习
  2. 综述 | 最新双曲深度神经网络综述论文
  3. 5.23 综合案例2.0-番茄时钟(2.2版本接口有更新)
  4. Altera新手教程
  5. java使用背景音乐_JAVA播放背景音乐
  6. KPA EtherCAT主站协议栈基准
  7. html实战:用html编写游戏
  8. IBM服务器端口IP设置
  9. Pytorch之nn.Conv1d学习个人见解
  10. 如何看待简书大V饱醉豚 写的《为什么程序员是出轨率最高的群体》?