123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- /*
- * Copyright (c) 2011 Nokia Corporation.
- */
- import Qt 4.7
- import "Game.js" as GameScript
- Item {
- id: myShip
- objectName: "myShip"
- property variant myShipSize
- property int originalY
- // Fires missile if exists
- function fire() {
- if (myShip.opacity==1) {
- GameScript.fireMissile(myShip.x+myShip.width/2,myShip.y,myShip.height*-1)
- if (myShip.y+myShip.height < gameArea.height+5) {
- goDownAnim.restart()
- }
- }
- }
- function createGraphicsForLevel() {
- myShip.myShipSize = LevelPlugin.graphSize(LevelPlugin.pathToMyShipPic())
- myShip.height = myShipSize.height
- myShip.width = myShipSize.width
- image.source = "file:/"+LevelPlugin.pathToMyShipPic()
- myShip.y = gameArea.height - myShip.height - 10
- originalY = myShip.y
- myShip.x = (gameArea.width - myShip.width)/ 2
- }
- Image {
- id: image
- smooth: true
- }
- Keys.onSpacePressed: { fire() }
- Keys.onSelectPressed: { fire() }
- Keys.onRightPressed: {
- if (myShip.x < (gameArea.width - myShip.width - 20)) {
- toRightAnim.restart()
- }
- }
- Keys.onLeftPressed: {
- if (myShip.x > 20) {
- toLeftAnim.restart()
- }
- }
- // To right animation
- PropertyAnimation { id: toRightAnim; target: myShip; easing.type: Easing.OutQuint;
- properties: "x"; from: myShip.x; to: myShip.x + 20; duration: 500 }
- // To left animation
- PropertyAnimation { id: toLeftAnim; target: myShip; easing.type: Easing.OutQuint;
- properties: "x"; from: myShip.x; to: myShip.x - 20; duration: 500 }
- // Go down on fire animation
- SequentialAnimation {
- id: goDownAnim
- NumberAnimation { target: myShip; property:"y"; from: myShip.y; to: myShip.y+5;
- easing.type: Easing.Linear; duration: 200 }
- NumberAnimation { target: myShip; property:"y"; from: myShip.y; to: originalY;
- easing.type: Easing.Linear; duration: 200 }
- }
- /*
- MouseArea {
- anchors.fill: parent
- drag.target: myShip
- drag.axis: Drag.XAxis
- drag.minimumX: 0
- drag.maximumX: gameArea.width - myShip.width
- onReleased: {
- fire()
- }
- }
- */
- /*
- property bool isAutoRepeat: false
- Keys.onPressed: {
- if (event.key == Qt.Key_Right) {
- if (event.isAutoRepeat) {
- isAutoRepeat = true
- toRightAnim.restart()
- } else {
- isAutoRepeat = false
- toRotateRightAndCenterAnim.restart()
- }
- event.accepted = true
- }
- else if (event.key == Qt.Key_Left) {
- if (event.isAutoRepeat) {
- isAutoRepeat = true
- toLeftAnim.restart()
- } else {
- isAutoRepeat = false
- toRotateLeftAndCenterAnim.restart()
- }
- event.accepted = true
- }
- }
- Keys.onReleased: {
- if (isAutoRepeat) {
- toRotateRightAndCenterAnim.stop()
- toRotateLeftAndCenterAnim.stop()
- } else {
- toRotateCenter.restart()
- }
- event.accepted = true
- }
- // Rotation on movement animation
- transform: Rotation { id:rotationId; origin.x: width/2; origin.y: height/2; axis { x: 0; y: 1; z: 0 } angle: 0 }
- SequentialAnimation {
- id: toRotateRightAndCenterAnim
- PropertyAnimation { target: rotationId; easing.type: Easing.Linear;
- properties: "angle"; from: 0; to: 30; duration: 100 }
- PropertyAnimation { target: myShip; easing.type: Easing.OutQuint;
- properties: "x"; from: myShip.x; to: myShip.x + 20; duration: 500 }
- PropertyAnimation { target: rotationId; easing.type: Easing.Linear;
- properties: "angle"; to: 0; duration: 100 }
- }
- SequentialAnimation {
- id: toRotateLeftAndCenterAnim
- PropertyAnimation { target: rotationId; easing.type: Easing.Linear;
- properties: "angle"; from: 0; to: -30; duration: 100 }
- PropertyAnimation { target: myShip; easing.type: Easing.OutQuint;
- properties: "x"; from: myShip.x; to: myShip.x - 20; duration: 500 }
- PropertyAnimation { target: rotationId; easing.type: Easing.Linear;
- properties: "angle"; to: 0; duration: 100 }
- }
- PropertyAnimation { id: toRotateRight; target: rotationId; easing.type: Easing.Linear;
- properties: "angle"; from: 0; to: 30; duration: 100 }
- PropertyAnimation { id: toRotateCenter; target: rotationId; easing.type: Easing.Linear;
- properties: "angle"; to: 0; duration: 100 }
- PropertyAnimation { id: toRotateLeft; target: rotationId; easing.type: Easing.Linear;
- properties: "angle"; from: 0; to: -30; duration: 100 }
- */
- }
|