Warning, /education/gcompris/src/activities/planegame/Cloud.qml is written in an unsupported language. File is not indexed.
0001 /* gcompris - Cloud.qml 0002 0003 SPDX-FileCopyrightText: 2014 Johnny Jazeix <jazeix@gmail.com> 0004 0005 2003, 2014: Bruno Coudoin: initial version 0006 2014: Johnny Jazeix: Qt port 0007 0008 SPDX-License-Identifier: GPL-3.0-or-later 0009 */ 0010 import QtQuick 2.12 0011 import "planegame.js" as Activity 0012 import "../../core" 0013 import GCompris 1.0 0014 0015 Image { 0016 id: cloud 0017 property Item background 0018 property alias text: number.text 0019 property double heightRatio: 1 0020 0021 /* An helper property to remember if a cloud has been wrongly touched */ 0022 property bool touched: false 0023 0024 sourceSize.height: 60 * ApplicationInfo.ratio 0025 height: sourceSize.height * heightRatio 0026 0027 state: "normal" 0028 fillMode: Image.PreserveAspectFit 0029 0030 z: 5 0031 0032 signal done 0033 signal touch 0034 0035 onDone: { 0036 particles.burst(50) 0037 opacityTimer.start() 0038 } 0039 0040 onTouch: { 0041 touched = true 0042 state = "storm" 0043 } 0044 0045 GCText { 0046 id: number 0047 anchors.horizontalCenter: cloud.horizontalCenter 0048 anchors.verticalCenter: cloud.verticalCenter 0049 color: "black" 0050 font.bold: true 0051 fontSize: 18 0052 } 0053 0054 Component.onCompleted: { 0055 x = -cloud.width - 1 0056 y = Activity.getRandomInt(0, background.height - (cloud.height + Activity.items.bar.height)) 0057 } 0058 0059 Behavior on x { PropertyAnimation { duration: 20000 } } 0060 Behavior on opacity { PropertyAnimation { duration: 400 } } 0061 0062 Timer { 0063 id: stormy 0064 interval: 2000 0065 running: false 0066 repeat: false 0067 onTriggered: cloud.state = "normal" 0068 } 0069 0070 states: [ 0071 State { 0072 name: "normal" 0073 PropertyChanges { 0074 target: cloud 0075 source: Activity.url + "resource/cloud.svg" 0076 } 0077 }, 0078 State { 0079 name: "storm" 0080 PropertyChanges { 0081 target: cloud 0082 source: Activity.url + "resource/cloud_storm.svg" 0083 } 0084 StateChangeScript { 0085 script: stormy.start() 0086 } 0087 } 0088 ] 0089 0090 Timer { 0091 id: opacityTimer 0092 running: false 0093 repeat: false 0094 interval: 500 0095 onTriggered: opacity = 0 0096 } 0097 0098 ParticleSystemStarLoader { 0099 id: particles 0100 anchors.fill: parent 0101 clip: false 0102 } 0103 0104 }