Level.qml Example File
demos/mobile/quickhit/plugins/LevelTwo/qml/Level.qml
 
 
 import QtQuick 1.0
 import Qt.labs.particles 1.0
 import "Level.js" as LevelScript
 Item {
     id: enemies
     anchors.fill: parent
     property int enemiesCreated: 0
     property int enemiesEnabled: 0
     property int backOneTop
     property int backTwoTop
     
     Image {
         id: longBackground_2
         source: "file:/"+LevelPlugin.pictureRootPath()+"background_loop.png"
         fillMode: Image.Stretch
         smooth: false
         width: gameArea.width
         height: gameArea.height
     }
     
     Image {
         id: longBackground_1
         source: "file:/"+LevelPlugin.pictureRootPath()+"background_loop.png"
         fillMode: Image.Stretch
         smooth: false
         width: gameArea.width
         height: gameArea.height
     }
     
      ParallelAnimation {
         id: backgroundAnim;
         loops: Animation.Infinite
         PropertyAnimation { target:longBackground_1; property:"y";
         from:backOneTop; to:gameArea.height; easing.type:Easing.Linear; duration:10000 }
         PropertyAnimation { target:longBackground_2; property:"y";
         from:backTwoTop; to:backOneTop; easing.type:Easing.Linear; duration:10000 }
      }
     
     
     function pause(doPause) {
         if (doPause) {
             enemyCreationTimer.stop()
             backgroundAnim.stop()
         } else {
             enemyCreationTimer.restart()
             backgroundAnim.restart()
         }
         for (var i=0;i<LevelScript.hiddenEnemies.length;i++) {
             var enemy = LevelScript.hiddenEnemies[i]
             enemy.pause(doPause)
         }
     }
     
     
     objectName: "level"
     
     Timer {
         id: enemyCreationTimer
         interval: 1000; running: false; repeat: true
         onTriggered: {
             enableEnemy()
         }
     }
     function enableEnemy() {
         if (enemiesEnabled < enemiesCreated) {
             var enemy = LevelScript.hiddenEnemies[enemiesEnabled]
             enemy.opacity = 1
             enemy.x = GameEngine.randInt(0,gameArea.width-enemy.width-50)
             enemy.startMovingAnim()
             enemyCreationTimer.stop()
             enemyCreationTimer.interval = GameEngine.randInt(500,2000)
             enemyCreationTimer.restart()
             enemiesEnabled = enemiesEnabled + 1
             GameEngine.playSound(4) 
         } else {
             enemyCreationTimer.stop()
         }
     }
     
     function createHiddenEnemiesGroup() {
         for (var i=0;i<LevelPlugin.enemyCount();i++) {
             var enemyComponent = Qt.createComponent("file:/"+LevelPlugin.qmlRootPath()+"Enemy.qml")
             var enemyObject = enemyComponent.createObject(enemies)
             LevelScript.hiddenEnemies.push(enemyObject)
             enemiesCreated = enemiesCreated + 1
         }
     }
     Component.onCompleted: {
         
         createHiddenEnemiesGroup()
         
         starBurstTimer.restart()
         
         enemyCreationTimer.restart()
         
         backOneTop = 0
         longBackground_1.y = backOneTop;
         backTwoTop = gameArea.height * -1
         longBackground_2.y = backTwoTop;
         backgroundAnim.restart()
         GameEngine.playSounds(5,3)  
     }
     Timer {
         id: starBurstTimer
         interval: starParticles.lifeSpan+GameEngine.randInt(100,2000); running: false; repeat: true
         onTriggered: {
         starParticles.burst(GameEngine.randInt(4,6))
         }
      }
     
     
     
     function explode(x,y) {
         explodeParticles.x = x
         explodeParticles.y = y
         explodeParticles.burst(20)
         explodeParticles.opacity = 1
     }
     
     
     
     Particles {
         id: explodeParticles
         opacity: 0
         width: 1
         height: 1
         emissionRate: 0
         source: "file:/"+LevelPlugin.pictureRootPath()+"blue_fire.png"
         lifeSpan: 500
         lifeSpanDeviation: 2000
         count: -1
         angle: 270
         angleDeviation: 65
         velocity: 100
         velocityDeviation: 100
         ParticleMotionGravity {
             yattractor: 1000
             xattractor: 300
             acceleration: 50
         }
     }
   Particles {
          id: starParticles
          y: -50
          x: 0
          width: parent.width
          height: 50
          emissionRate: 0
          source: "file:/"+LevelPlugin.pictureRootPath()+"star3.png"
          lifeSpan: 5000
          count: -1
          angle: 90
          velocity: 100
          opacity: 0.7
         ParticleMotionGravity {
             yattractor: 1000
             xattractor: 500
         }
      }
 }