C
Qt Quick Ultralite 加载器示例
演示如何使用 Loader QML 类型。
概述
loader
示例展示了如何使用 Loader QML 类型。
它实现了一个简单的记忆游戏。玩家必须按照屏幕上出现的顺序点击颜色。当玩家点击错误颜色时,游戏结束。当顺序中的最后一个颜色被点击时,最佳得分更新,并开始新一轮。
应用 UI
应用由三个页面组成
- 标志
- 记忆游戏
- 设置
应用的主视图实现为一个 loader,这确保了 RAM 中仅存储一个页面。
每当按下每一侧的按钮时,loader 的源代码都会更改为对应页面的源。
Loader { id: mainView anchors.fill: parent source: "Logo.qml" Connections { target: root function onCurrentPageChanged(currentPage: int) { if (currentPage === 0) { mainView.source = "memory_game/MemoryGame.qml" } else if (currentPage === 1) { mainView.source = "settings/Settings.qml" GameState.running = false } } } }
标志页面
标志页面显示一个简介图片。它在应用的开始只出现一次。
记忆游戏页面
记忆游戏分为两部分,显示和控制系统。在游戏的一开始,展示部分用来显示玩家必须记住的颜色。
展示部分还包含统计数据、当前得分和最佳得分。
控制系统部分是一排颜色按钮,玩家必须按照正确的顺序点击。
Rectangle { id: root color: SettingsData.backgroundColor Item { id: positioningWrapper anchors { fill: parent; leftMargin: parent.width/10; rightMargin: parent.width/10; } GameWindow { anchors { left: parent.left; top: parent.top; right: parent.right; bottom: gameControls.top } } ColorButtons { id: gameControls anchors { bottom: parent.bottom; horizontalCenter: parent.horizontalCenter } width: parent.width height: width * 0.2 } StatsOverlay { anchors { left: parent.left; right: parent.right; } } } }
设置页面
设置页面允许用户调整应用的背景颜色,并更改游戏的难度级别。
项目结构
主应用
主应用程序窗口在 loader.qml
中定义
记忆游戏
游戏 UI 由 loader/memory_game
目录中的 QML 文件定义
模块
loader 示例定义了两个模块
- SettingsData
- GameState
SettingsData 模块存储应用设置,如背景颜色或难度级别。
GameState 模块用于控制游戏。
这两个模块都被用作加载项目之间的通信手段。
文件
- loader/CMakeLists.txt
- loader/Logo.qml
- loader/PageButton.qml
- loader/loader.qml
- 加载器/MCU加载器.qmlproject
- 加载器/记忆游戏/ColorButtons.qml
- 加载器/记忆游戏/ColorsQueue.cpp
- 加载器/记忆游戏/ColorsQueue.h
- 加载器/记忆游戏/GameMain.qml
- 加载器/记忆游戏/GameOver.qml
- 加载器/记忆游戏/GameState.qml
- 加载器/记忆游戏/GameStateModule.qmlproject
- 加载器/记忆游戏/GameWindow.qml
- 加载器/记忆游戏/MemoryGame.qml
- 加载器/记忆游戏/StatsOverlay.qml
- 加载器/设置/ColorSelector.qml
- 加载器/设置/DifficultySelector.qml
- 加载器/设置/Settings.qml
- 加载器/设置/SettingsData.qml
- 加载器/设置/SettingsDataModule.qmlproject
图片
另请参阅与已加载项的通信.
在特定Qt许可证下可用。
了解更多信息。