GameView.qml Example File
examples/native/scalability/scalableconfiguration/GameView.qml
import QtQuick 1.1
import "gameengine.js" as GameEngine
Rectangle {
id: root
property Item configuration
function startGame() {
GameEngine.reset();
scoreText.text = "0000";
gameTimer.interval = root.configuration.interval;
gameTimer.start();
}
function gameOver() {
statusRect.text = "Game Over\n\nScore: "
+ scoreText.text
+ "\n\nTap to restart game!";
statusRect.visible = true;
}
anchors.fill: parent
color: "black"
Rectangle {
id: statusRect
property string text: "Tap on the buttons\n in the sequence\n"
+ " that they flash in.\n\nTap to start game!"
anchors.centerIn: parent
border.width: 3
border.color: "red"
color: "black"
opacity: 0.8
radius: root.configuration.radius
width: statusText.width + 10
height: statusText.height + 10
z: 1
Text {
id: statusText
text: statusRect.text
anchors.centerIn: parent
horizontalAlignment: Text.AlignHCenter
font: root.configuration.smallFont
color: "red"
}
MouseArea {
anchors.fill: parent
onClicked: {
statusRect.visible = false;
root.startGame();
}
}
}
Text {
id: scoreText
color: "white"
text: "0000"
anchors { top: parent.top; bottom: grid.top; horizontalCenter: parent.horizontalCenter }
verticalAlignment: Text.AlignVCenter
font: root.configuration.largeFont
}
Grid {
id: grid
property int cellWidth: (width - ((columns - 1) * spacing)) / columns
anchors { left: parent.left; bottom: parent.bottom; right: parent.right }
columns: root.configuration.columns
rows: root.configuration.rows
spacing: root.configuration.spacing
GameButton {
id: orangeButton
width: grid.cellWidth
radius: root.configuration.radius
bottomColor: GameEngine.ORANGE
enabled: gameTimer.running
onClicked: GameEngine.check(GameEngine.ORANGE)
}
GameButton {
id: greenButton
width: grid.cellWidth
radius: root.configuration.radius
bottomColor: GameEngine.GREEN
enabled: gameTimer.running
onClicked: GameEngine.check(GameEngine.GREEN)
}
GameButton {
id: redButton
width: grid.cellWidth
radius: root.configuration.radius
bottomColor: GameEngine.RED
enabled: gameTimer.running
onClicked: GameEngine.check(GameEngine.RED)
}
GameButton {
id: blueButton
width: grid.cellWidth
radius: root.configuration.radius
bottomColor: GameEngine.BLUE
enabled: gameTimer.running
onClicked: GameEngine.check(GameEngine.BLUE)
}
}
Timer {
id: gameTimer
repeat:true
onTriggered: {
gameTimer.interval -= root.configuration.intervalDecrease;
GameEngine.blink();
}
}
}