aboutsummaryrefslogtreecommitdiffstats
path: root/examples/declarative/samegame/samegame.qml
diff options
context:
space:
mode:
authorAlan Alpert <alan.alpert@nokia.com>2011-08-10 13:24:37 +1000
committerQt by Nokia <qt-info@nokia.com>2011-08-15 03:48:53 +0200
commit4796c4d9550166500d54b829fa97541e4de6e929 (patch)
tree14a42e0f655cdb4a591ec268330e1e145e7f76f7 /examples/declarative/samegame/samegame.qml
parentb631e1e4f245dc8ba4460bda6acb4ed1ef63bcdc (diff)
SameGame refactor
A little more imperative with dialogs controlled from script, but better separation of GameArea and UI. Also removes old highscore script that was never used. Change-Id: Ib244acc90b0fc92b3a6534169e429b6acef0838e Reviewed-on: http://codereview.qt.nokia.com/2798 Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
Diffstat (limited to 'examples/declarative/samegame/samegame.qml')
-rw-r--r--examples/declarative/samegame/samegame.qml121
1 files changed, 8 insertions, 113 deletions
diff --git a/examples/declarative/samegame/samegame.qml b/examples/declarative/samegame/samegame.qml
index 887cfe1cc9..baf5b8e926 100644
--- a/examples/declarative/samegame/samegame.qml
+++ b/examples/declarative/samegame/samegame.qml
@@ -46,143 +46,38 @@ import "SamegameCore/samegame.js" as Logic
Rectangle {
id: screen
- width: 360; height: 640
- property bool inAnotherDemo: false //Samegame often is just plonked straight into other examples
+ width: 480; height: 640
SystemPalette { id: activePalette }
- Item {
+ GameArea {
+ id: gameCanvas
width: parent.width
anchors { top: parent.top; bottom: toolBar.top }
-
- Image {
- id: background
- anchors.fill: parent
- source: "SamegameCore/pics/background.png"
- fillMode: Image.PreserveAspectCrop
- }
-
- Item {
- id: gameCanvas
- property int score: 0
- property int blockSize: 40
-
- z: 20; anchors.centerIn: parent
- width: parent.width - (parent.width % blockSize);
- height: parent.height - (parent.height % blockSize);
-
- MouseArea {
- anchors.fill: parent; onClicked: Logic.handleClick(mouse.x,mouse.y);
- }
- }
- Item{
- ParticleSystem{ id: particleSystem; }
- ImageParticle {
- system: particleSystem
- particles: ["red"]
- color: Qt.darker("red");//Actually want desaturated...
- source: "SamegameCore/pics/particle.png"
- colorVariation: 0.4
- alpha: 0.1
- }
- ImageParticle {
- system: particleSystem
- particles: ["green"]
- color: Qt.darker("green");//Actually want desaturated...
- source: "SamegameCore/pics/particle.png"
- colorVariation: 0.4
- alpha: 0.1
- }
- ImageParticle {
- system: particleSystem
- particles: ["blue"]
- color: Qt.darker("blue");//Actually want desaturated...
- source: "SamegameCore/pics/particle.png"
- colorVariation: 0.4
- alpha: 0.1
- }
- id: aboveGameCanvas
- anchors.fill: gameCanvas
- z: gameCanvas.z + 1
- }
- }
-
- Dialog { id: dialog; anchors.centerIn: parent; z: 21 }
-
- Dialog {
- id: nameInputDialog
-
- property int initialWidth: 0
- property alias name: nameInputText.text
-
- anchors.centerIn: parent
- z: 22;
-
- Behavior on width {
- NumberAnimation {}
- enabled: nameInputDialog.initialWidth != 0
- }
-
- onClosed: {
- if (nameInputText.text != "")
- Logic.saveHighScore(nameInputText.text);
- }
- Text {
- id: dialogText
- anchors { left: nameInputDialog.left; leftMargin: 20; verticalCenter: parent.verticalCenter }
- text: "You won! Please enter your name: "
- }
- MouseArea {
- anchors.fill: parent
- onClicked: {
- if (nameInputText.text == "")
- nameInputText.openSoftwareInputPanel();
- else
- nameInputDialog.forceClose();
- }
- }
-
- TextInput {
- id: nameInputText
- anchors { verticalCenter: parent.verticalCenter; left: dialogText.right }
- focus: visible
- autoScroll: false
- maximumLength: 24
- onTextChanged: {
- var newWidth = nameInputText.width + dialogText.width + 40;
- if ( (newWidth > nameInputDialog.width && newWidth < screen.width)
- || (nameInputDialog.width > nameInputDialog.initialWidth) )
- nameInputDialog.width = newWidth;
- }
- onAccepted: {
- nameInputDialog.forceClose();
- }
- }
}
Rectangle {
id: toolBar
- width: parent.width; height: 58
+ width: parent.width; height: 80
color: activePalette.window
anchors.bottom: screen.bottom
Button {
id: newGameButton
- anchors { left: parent.left; leftMargin: 3; verticalCenter: parent.verticalCenter }
+ anchors { left: parent.left; leftMargin: 12; verticalCenter: parent.verticalCenter }
text: "New Game"
- onClicked: Logic.startNewGame()
+ onClicked: Logic.startNewGame(gameCanvas)
}
Button {
- visible: !inAnotherDemo
text: "Quit"
- anchors { left: newGameButton.right; leftMargin: 3; verticalCenter: parent.verticalCenter }
+ anchors { left: newGameButton.right; leftMargin: 12; verticalCenter: parent.verticalCenter }
onClicked: Qt.quit();
}
Text {
id: score
- anchors { right: parent.right; rightMargin: 3; verticalCenter: parent.verticalCenter }
+ anchors { right: parent.right; rightMargin: 12; verticalCenter: parent.verticalCenter }
text: "Score: " + gameCanvas.score
font.bold: true
font.pixelSize: 24