您当前的位置:中国手游网 > 要闻 > QtQuick综合示例小游戏MarooninTrouble(1)

QtQuick综合示例小游戏MarooninTrouble(1)

时间:2022-11-03 16:45:46  阅读:93921+
QtQuick综合示例小游戏MarooninTrouble(1)

综合示例小游戏

前言

之前的文章中已经介绍了QML的粒子系统和一些动画知识,虽然做出了一些炫酷的效果,但是并没有真正运用到实战中去,正好我找到了一个Qt Quick做的小游戏,其中主要用到了这两个模块。因此,本节就带领小伙伴们学习一下这个小游戏,以便更好地将粒子系统和动画结合在一起运用到实战中去。

小游戏地名字叫Maroon in Trouble,游戏封面是这样的:

玩法介绍

这个游戏算是一个防守游戏。上图中游来游去的气泡小黄鱼就是Maroon,它从海底向上游去,玩家需要做的是在它游动的路径上布置一些其他的水生生物(如螃蟹、章鱼、海星和河豚)来阻止Maroon游到最上面的海面处。如果Maroon游到最上面的海面,则判定玩家失败。

游戏进入界面就是上图展示的那样,点击new game以后,游戏正式开始。游戏开始会有一个“321”的倒计时,并且画面正中偏下方位置会有Tip提示,点开以后是关于水生生物的信息。

左上角是玩家的生命值,每一个Maroon小黄鱼浮到海面上就会减一颗,三个红心全部减完后游戏失败。右上角有玩家成功阻止Maroon的数量和用于购买水生生物的海星(游戏中的货币)。

游戏中所用到的QML知识

使用自定义QML类型为游戏的不同阶段创建不同的屏幕。

使用Item和Image类型来构建一个游戏背景。

使用SequentialAnimation顺序动画, NumberAnimation, ParticleSystem粒子系统, Emitter发射器和Wander波形影响器类型来使背景对象动画化。

使用Timer定时器和Repeater重复器类型显示倒计时序列开始游戏。

使用自定义QML类型和自定义属性来构建一个游戏面板。

使用SpriteSequence和Sprite类型向游戏面板添加动画对象。

使用自定义QML类型,使用Image类型和一些自定义属性添加一个菜单,玩家可以购买对象。

使用自定义属性和private functions来跟踪游戏统计数据,并使用自定义QML类型来显示给玩家。

使用State类型和Javascript函数来管理游戏状态。

使用SoundEffect类型根据对象类型和应用于对象的动作来播放单独的声音效果。

使用信号处理器来指定一些游戏操作的键盘快捷键。

使用资源文件对游戏资源进行打包,以便部署和交付。

总结

通过这个小游戏,可以将之前学到的粒子系统和动画的知识融会贯通并运用到实际中去,对深入掌握这两个模块非常有帮助。而且游戏中也使用到了其他的QML知识,比如定时器和界面的布局等等,这些都是我们在实际使用中经常用到的。因此,需要将这个综合示例小游戏仔细进行拆分研究。

原标题:QtQuick综合示例小游戏MarooninTrouble(1)