C
Qt Quick Ultralite loader Example
// Copyright (C) 2024 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial
import QtQuick 2.15
import SettingsData
import GameState
Item {
id: root
MouseArea {
id: startButton
anchors.fill: parent
visible: !GameState.running
Text {
id: startLabel
anchors.centerIn: parent
text: "Tap to start."
font: SettingsData.smallFont
}
onClicked: {
GameState.running = true
GameState.prepareRound()
GameState.roundStarted()
}
}
Rectangle {
id: colorDisplay
anchors.centerIn: parent
visible: false
width: 100
height: width
radius: 5
}
Timer {
id: showCardTimer
interval: 150
onTriggered: { colorDisplay.visible = true }
}
Timer {
id: colorDisplayTimer
property int i: 0
interval: i === 0 ? 0 : SettingsData.colorDisplayTimeout
repeat: i <= GameState.colorsQueue.size()
onTriggered: {
colorDisplay.visible = false
if (i === GameState.colorsQueue.size()) {
i = 0
GameState.takeInput = true
stop()
} else {
colorDisplay.color = GameState.colorsQueue.at(i)
showCardTimer.start()
i++
}
}
Connections{
target: GameState
function onRoundStarted() {
colorDisplayTimer.start()
}
}
}
Component.onCompleted: {
if (GameState.running) {
colorDisplayTimer.start()
}
}
}