summaryrefslogtreecommitdiffstats
path: root/demos/mobile/quickhit/game.qml
diff options
context:
space:
mode:
Diffstat (limited to 'demos/mobile/quickhit/game.qml')
-rwxr-xr-xdemos/mobile/quickhit/game.qml432
1 files changed, 0 insertions, 432 deletions
diff --git a/demos/mobile/quickhit/game.qml b/demos/mobile/quickhit/game.qml
deleted file mode 100755
index 44b196e..0000000
--- a/demos/mobile/quickhit/game.qml
+++ /dev/null
@@ -1,432 +0,0 @@
-/******************************************************************************
- *
- * Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
- * All rights reserved.
- * Contact: Nokia Corporation (qt-info@nokia.com)
- *
- * $QT_BEGIN_LICENSE:BSD$
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the author organization nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $QT_END_LICENSE$
- *
- *****************************************************************************/
-
-import Qt 4.7
-import "Game.js" as GameScript
-
-Item {
- id: gameArea
- width: 360; height: 640 // NOTE: have to exists some default sizes
- anchors.fill: parent
- objectName: "gameArea"
-
-
- // Who win, you or computer
- property bool gameOverProperty: false
-
- // for info message to user
- property variant messageBox
-
- // Level activated signal for Qt side to load activated level
- signal levelActivated(int index)
-
- // Pause whole game, if level is loaded
- function pauseGame() {
- if (GameScript.levelPlugin) {
- GameScript.pauseGame(true)
- myShip.focus = false
- btnPause.opacity = 0
- menu.showPauseMenu()
- }
- }
-
- // Qt side call this for QML take new level into use
- function levelReadyForCreation() {
- // Hide menu
- menu.hideMenu()
- // Show message
- message.showMessage("Loading Level...",2000)
- // Wait before create level
- levelCreationTimer.restart()
- }
-
- // Fires ememy missile. Function is called from Qt side
- function fireEnemyMissile(aXpox, aFromYpos, aToYpos) {
- GameScript.fireEnemyMissile(aXpox, aFromYpos, aToYpos)
- }
-
- // Game Over handling. Function is called from Qt side
- function gameOver(youWin) {
- // Stop GameEngine timers
- GameEngine.enableEngineTimer(false)
- gameOverProperty = youWin
- GameScript.hideMissiles()
- gameOverTimer.restart()
- //GameEngine.vibra()
- }
-
- // End game and show menu
- function endGame(showMessage) {
- backgroundPic.opacity = 1
- // Stop GameEngine timers
- GameEngine.enableEngineTimer(false)
- // Do game over
- GameScript.gameOver()
- GameScript.hideMissiles()
- // Clear GameEngine QML objects
- GameEngine.clearQmlObjects()
- myShip.opacity = 0
- myShip.focus = false
- btnPause.opacity = 0
- idMainLogo.opacity = 1
- menu.showLevelMenu()
- if (showMessage) {
- message.showMessage("Game End",2000)
- }
- }
-
- // Timer for level creationing
- Timer {
- id: levelCreationTimer
- interval: 1000; running: false; repeat: false
- onTriggered: {
- btnPause.opacity = 1
- myShip.opacity = 1
- myShip.focus = true
- // Create new level
- var ret = GameScript.createLevel()
- if (ret==0) {
- backgroundPic.opacity = 0
- // Find QML object for GameEngine
- GameEngine.findQmlObjects()
- // Enable GameEngine timer
- GameEngine.enableEngineTimer(true)
- } else {
- // Level cannot be created!
- endGame(false)
- }
- }
- }
-
- // Timer for game over
- Timer {
- id: gameOverTimer
- interval: 1500; running: false; repeat: false
- onTriggered: {
- backgroundPic.opacity = 1
- idMainLogo.opacity = 1
- // Do game over
- GameScript.gameOver()
- // Clear GameEngine QML objects
- GameEngine.clearQmlObjects()
- menu.showLevelMenu()
- if (gameOverProperty) {
- GameEngine.playInternalSound(4)
- message.showMessage("Game Over, You win!",2000)
- } else {
- GameEngine.playInternalSounds(3,3)
- message.showMessage("Game Over, You lose",2000)
- }
- }
- }
-
- // Menu signal to slot connections
- Connections {
- target: menu
- // Level selected
- onLevelSelected: {
- // Stop bigship animation
- bigShipAnim.stop()
- bigShip.opacity = 0
- // Hide logo
- idMainLogo.opacity = 0
- // Signal level activated
- gameArea.levelActivated(levelIndex)
- }
- // Level resumed selected
- onResumeSelected: {
- menu.hideMenu()
- GameScript.pauseGame(false)
- myShip.focus = true
- }
- }
-
- // This component creation completed
- Component.onCompleted: {
- // Show main Level selection menu
- menu.showLevelMenu()
-
- // Start big ship animation
- bigShipAnim.restart()
-
- // Set variable
- messageBox = message
-
- // Play game start sound
- GameEngine.gameStartSound()
-
- // Fade splash screen
- fadeAnim.restart()
- // Rotate splash logo
- rotAnim.restart()
- }
-
-
- // Background image for the game
- Image {
- id: backgroundPic
- z:1
- source: "qrc:/gfx/background2.png"
- fillMode: Image.PreserveAspectCrop
- smooth: true
- anchors.fill: parent
- }
-
- Image {
- id: bigShip
- source: "qrc:/gfx/bigship.png"
- z:1.5
- smooth: true
- x: width * -1
- y: parent.height * 0.55
- }
- SequentialAnimation {
- id: bigShipAnim;
- NumberAnimation {target:bigShip; property:"x"; to:gameArea.width; easing.type: Easing.Linear; duration: 80000 }
- PropertyAction {target:bigShip; properties: "opacity"; value: 0}
- }
-
-
- // Enemies grid
- Item {
- // This is general level QML plaseholder
- // Into this is level QML created in createLevel()
- id:levelId
- anchors.fill: parent
- z:2
- }
-
- Image {
- id: idMainLogo
- z:19
- source: "qrc:/gfx/quickhit_logo.png"
- smooth: true
- anchors.horizontalCenter: gameArea.horizontalCenter
- y:gameArea.height / 10 * 1
- }
-
- // Game menu
- Menu {
- z:20
- id:menu
- width: gameArea.width / 5 * 4
- height: gameArea.height / 10 * 4
- anchors.verticalCenter: gameArea.verticalCenter
- anchors.horizontalCenter: gameArea.horizontalCenter
- }
-
- // My ship
- MyShip {
- z:10
- id: myShip
- opacity: 0
- }
-
- // Mouse area of your ship
- MouseArea {
- //anchors.fill: parent
- width: parent.width
- height: myShip.height
- x:0
- y:gameArea.height - myShip.height
-
- drag.target: myShip
- drag.axis: Drag.XAxis
- drag.minimumX: 0
- drag.maximumX: gameArea.width - myShip.width
-
- property int startPos: 0
- property int dragCount: 0
-
- onPressed: {
- startPos = mouseX
- dragCount = 0
- }
- onPositionChanged: {
- //dragCount = Math.abs(mouseX-startPos)
- }
- onReleased: {
- //if (dragCount<20) {
- myShip.fire()
- //}
- }
- }
-
- // Pause button
- Button {
- id: btnSound
- z:12
- //animationEnabled: false
- anchors.top: parent.top
- anchors.topMargin: 10
- buttonPath: "qrc:/gfx/soundOn.png"
- buttonId: 4
- width: gameArea.width / 10
- height: gameArea.width / 10
- x: gameArea.width - width - 15
- opacity: 1
- Connections {
- target: btnSound
- onBtnClicked: {
- if (btnSound.buttonId==4) {
- // Sound off
- btnSound.buttonPath = "qrc:/gfx/soundOff.png"
- btnSound.buttonId = 5
- GameEngine.enableSounds(false)
- } else {
- // Sound on
- btnSound.buttonPath = "qrc:/gfx/soundOn.png"
- btnSound.buttonId = 4
- GameEngine.enableSounds(true)
- }
- }
- }
- }
-
- // Pause button
- Button {
- id: btnPause
- z:13
- anchors.top: parent.top
- anchors.topMargin: 10
- buttonPath: "qrc:/gfx/pause.png"
- buttonId: 3
- width: gameArea.width / 10
- height: gameArea.width / 10
- x: gameArea.width - width - btnPause.width - 15*2
- opacity: 0
- Connections {
- target: btnPause
- onBtnClicked: {
- GameScript.pauseGame(true)
- myShip.focus = false
- btnPause.opacity = 0
- menu.showPauseMenu()
- }
- }
- }
-
-
- // Hidden missiles ready for to be launched
- Missile {
- z:3
- id: missile_1
- x:0
- y:10
- }
- Missile {
- z:4
- id: missile_2
- x: 20
- y:10
- }
- Missile {
- z:5
- id: missile_3
- x: 40
- y:10
- }
- Missile {
- z:6
- id: missile_4
- x: 60
- y:10
- }
- Missile {
- z:7
- id: missile_5
- x: 80
- y:10
- }
- Missile {
- z:8
- objectName: "enemy_missile"
- id: enemy_missile_1
- enemyMissile: true
- }
- Missile {
- z:9
- objectName: "enemy_missile"
- id: enemy_missile_2
- enemyMissile: true
- }
-
- // Messages to the user
- Message {
- id: message
- z:21
- }
-
-
- // Splach screen
- Rectangle {
- id: blackFace
- x:-2
- y:0
- width: parent.width + 2
- height: parent.height
- z:100
- color: "black"
- opacity: 1
-
- MouseArea {
- anchors.fill: parent
- onPressed: {
- mouse.accepted = true
- fadeAnim.stop()
- blackFace.opacity = 0
- }
- }
-
- Image {
- id: idLogo
- source: "qrc:/gfx/quickhit_logo.png"
- smooth: true
- anchors.horizontalCenter: parent.horizontalCenter
- anchors.verticalCenter: parent.verticalCenter
- opacity: 0
- }
- NumberAnimation { id: rotAnim; target: idLogo; property: "rotation"; to: 20; duration: 9000 }
-
- }
- // Splach screen animation
- SequentialAnimation {
- id: fadeAnim
- PauseAnimation {duration: 1000 }
- NumberAnimation {target: idLogo; property: "opacity"; from: 0; to: 1; duration: 2000 }
- PauseAnimation {duration: 2000 }
- NumberAnimation {target: idLogo; property: "opacity"; from: 1; to: 0; duration: 2000 }
- NumberAnimation {target: blackFace; property: "opacity"; from: 1; to: 0; duration: 2000 }
- }
-
-}