diff options
Diffstat (limited to 'examples/quick/touchinteraction/multipointtouch')
14 files changed, 539 insertions, 0 deletions
diff --git a/examples/quick/touchinteraction/multipointtouch/bearwhack.qml b/examples/quick/touchinteraction/multipointtouch/bearwhack.qml new file mode 100644 index 0000000000..db46473c05 --- /dev/null +++ b/examples/quick/touchinteraction/multipointtouch/bearwhack.qml @@ -0,0 +1,133 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/ +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "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 Nokia Corporation and its Subsidiary(-ies) 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 THE COPYRIGHT +** OWNER OR CONTRIBUTORS 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 QtQuick 2.0 +import QtQuick.Particles 2.0 +import "content" + +Item { + id: root + height: 640 + width: 320 + Item { + id: startScreen + anchors.fill: parent + z: 1000 + Image { + source: "content/title.png" + anchors.centerIn: parent + } + MouseArea{ + anchors.fill: parent + onClicked: {//Game Start + parent.visible = false; + } + } + } + Rectangle { + id: bg + anchors.fill: parent + gradient: Gradient { + GradientStop { position: 0.0; color: "DarkBlue" } + GradientStop { position: 0.8; color: "SkyBlue" } + GradientStop { position: 0.81; color: "ForestGreen" } + GradientStop { position: 1.0; color: "DarkGreen" } + } + } + + BearWhackParticleSystem { + id: particleSystem + anchors.fill: parent + running: !startScreen.visible + } + + property int score: 0 + + Text { + anchors.right: parent.right + anchors.margins: 4 + anchors.top: parent.top + color: "white" + function padded(num) { + var ret = num.toString(); + while (ret.length < 6) + ret = "0" + ret; + return ret; + } + text: "Score: " + padded(score) + } + MultiPointTouchArea { + anchors.fill: parent + touchPoints: [//Support up to 4 touches at once? + AugmentedTouchPoint{ system: particleSystem }, + AugmentedTouchPoint{ system: particleSystem }, + AugmentedTouchPoint{ system: particleSystem }, + AugmentedTouchPoint{ system: particleSystem } + ] + } + MouseArea{ + anchors.fill: parent + id: ma + onPressedChanged: { + if (pressed) { + timer.restart(); + sgoal.enabled = true; + particleSystem.explode(mouseX,mouseY); + } + } + Timer { + id: timer + interval: 100 + running: false + repeat: false + onTriggered: sgoal.enabled = false + } + SpriteGoal { + id: sgoal + x: ma.mouseX - 16 + y: ma.mouseY - 16 + width: 32 + height: 32 + system: particleSystem + parent: particleSystem + goalState: "falling" + enabled: false + } + } +} diff --git a/examples/quick/touchinteraction/multipointtouch/content/AugmentedTouchPoint.qml b/examples/quick/touchinteraction/multipointtouch/content/AugmentedTouchPoint.qml new file mode 100644 index 0000000000..aede1a8f4e --- /dev/null +++ b/examples/quick/touchinteraction/multipointtouch/content/AugmentedTouchPoint.qml @@ -0,0 +1,70 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/ +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "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 Nokia Corporation and its Subsidiary(-ies) 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 THE COPYRIGHT +** OWNER OR CONTRIBUTORS 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 QtQuick 2.0 +import QtQuick.Particles 2.0 + +TouchPoint { + id: container + property ParticleSystem system + onPressedChanged: { + if (pressed) { + timer.restart(); + child.enabled = true; + system.explode(x,y); + } + } + property QtObject obj: Timer { + id: timer + interval: 100 + running: false + repeat: false + onTriggered: child.enabled = false + } + property Item child: SpriteGoal { + enabled: false + x: container.area.x - 16 + y: container.area.y - 16 + width: container.area.width + 32 + height: container.area.height + 32 //+32 so it doesn't have to hit the exact center + system: container.system + parent: container.system + goalState: "falling" + } +} diff --git a/examples/quick/touchinteraction/multipointtouch/content/Bear0.png b/examples/quick/touchinteraction/multipointtouch/content/Bear0.png Binary files differnew file mode 100644 index 0000000000..64a02cec8e --- /dev/null +++ b/examples/quick/touchinteraction/multipointtouch/content/Bear0.png diff --git a/examples/quick/touchinteraction/multipointtouch/content/Bear1.png b/examples/quick/touchinteraction/multipointtouch/content/Bear1.png Binary files differnew file mode 100644 index 0000000000..3b88f3b32e --- /dev/null +++ b/examples/quick/touchinteraction/multipointtouch/content/Bear1.png diff --git a/examples/quick/touchinteraction/multipointtouch/content/Bear2.png b/examples/quick/touchinteraction/multipointtouch/content/Bear2.png Binary files differnew file mode 100644 index 0000000000..337b636070 --- /dev/null +++ b/examples/quick/touchinteraction/multipointtouch/content/Bear2.png diff --git a/examples/quick/touchinteraction/multipointtouch/content/Bear3.png b/examples/quick/touchinteraction/multipointtouch/content/Bear3.png Binary files differnew file mode 100644 index 0000000000..f0e68590f4 --- /dev/null +++ b/examples/quick/touchinteraction/multipointtouch/content/Bear3.png diff --git a/examples/quick/touchinteraction/multipointtouch/content/BearB.png b/examples/quick/touchinteraction/multipointtouch/content/BearB.png Binary files differnew file mode 100644 index 0000000000..c9a84ae1d4 --- /dev/null +++ b/examples/quick/touchinteraction/multipointtouch/content/BearB.png diff --git a/examples/quick/touchinteraction/multipointtouch/content/BearWhackParticleSystem.qml b/examples/quick/touchinteraction/multipointtouch/content/BearWhackParticleSystem.qml new file mode 100644 index 0000000000..bed03e99aa --- /dev/null +++ b/examples/quick/touchinteraction/multipointtouch/content/BearWhackParticleSystem.qml @@ -0,0 +1,180 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/ +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "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 Nokia Corporation and its Subsidiary(-ies) 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 THE COPYRIGHT +** OWNER OR CONTRIBUTORS 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 QtQuick 2.0 +import QtQuick.Particles 2.0 + +ParticleSystem { + id: particleSystem + function explode(x,y) { + fireEmitter.burst(100,x,y); + } + + Emitter { + id: emitter + group: "bears" + width: parent.width + emitRate: 1 + NumberAnimation on emitRate { + id: goFaster + from: 1 + to: 16 + running: particleSystem.running + loops: 1 + duration: 60000 * 5 + easing.type: Easing.Linear + } + lifeSpan: 4000 + 800*(16-emitRate) + maximumEmitted: 128 + size: 64 + speed: PointDirection{ y: 40 + 10 * emitter.emitRate } + } + + Emitter { + id: fireEmitter + enabled: false + maximumEmitted: 6000 + group: "flame" + emitRate: 1000 + size: 16 + endSize: 8 + speed: CumulativeDirection { AngleDirection {angleVariation: 180; magnitudeVariation: 120;} PointDirection { y: -60 }} + lifeSpan: 400 + } + Emitter { + id: heartEmitter + enabled: false + maximumEmitted: 6000 + group: "hearts" + emitRate: 1000 + size: 16 + endSize: 8 + speed: AngleDirection {angleVariation: 180; magnitudeVariation: 180;} + lifeSpan: 600 + } + Emitter { + id: bloodEmitter + enabled: false + maximumEmitted: 6000 + group: "blood" + emitRate: 1000 + size: 16 + endSize: 8 + speed: CumulativeDirection { AngleDirection {angleVariation: 180; magnitudeVariation: 80;} PointDirection { y: 40 }} + lifeSpan: 600 + } + + Affector { + width: parent.width + height: 64 + once: true + y: parent.height - 32 + groups: "bears" + onAffectParticles: { + for (var i=0;i<particles.length; i++) { + if (particles[i].animationIndex != 0) { + score++; + bloodEmitter.burst(100, particles[i].x, particles[i].y); + } else { + score--; + heartEmitter.burst(100, particles[i].x, particles[i].y); + } + particles[i].update = 1.0; + particles[i].t -= 1000.0; + } + } + } + ImageParticle { + groups: ["flame"] + source: "blur-circle.png" + z: 4 + colorVariation: 0.1 + color: "#ffa24d" + alpha: 0.4 + } + ImageParticle { + groups: ["blood"] + color: "red" + z: 2 + source: "blur-circle3.png" + alpha: 0.2 + } + ImageParticle { + groups: ["hearts"] + color: "#ff66AA" + z: 3 + source: "heart-blur.png" + alpha: 0.4 + autoRotation: true + } + ImageParticle { + groups: ["bears"] + z: 1 + spritesInterpolate: false + sprites:[ + Sprite{ + name: "floating" + source: "Bear1.png" + frameCount: 9 + frameWidth: 256 + frameHeight: 256 + frameDuration: 80 + to: {"still":0, "flailing":0} + }, + Sprite{ + name: "flailing" + source: "Bear2.png" + frameCount: 8 + frameWidth: 256 + frameHeight: 256 + frameDuration: 80 + to: {"falling":1} + }, + Sprite{ + name: "falling" + source: "Bear3.png" + frameCount: 5 + frameWidth: 256 + frameHeight: 256 + frameDuration: 80 + to: {"falling":1} + } + ] + } +} diff --git a/examples/quick/touchinteraction/multipointtouch/content/ParticleFlame.qml b/examples/quick/touchinteraction/multipointtouch/content/ParticleFlame.qml new file mode 100644 index 0000000000..9788c5c665 --- /dev/null +++ b/examples/quick/touchinteraction/multipointtouch/content/ParticleFlame.qml @@ -0,0 +1,65 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/ +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "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 Nokia Corporation and its Subsidiary(-ies) 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 THE COPYRIGHT +** OWNER OR CONTRIBUTORS 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 QtQuick 2.0 +import QtQuick.Particles 2.0 + +ParticleSystem { + property alias color: img.color + property alias emitting: emitter.enabled + ImageParticle { + id: img + source: "blur-circle.png" + colorVariation: 0.1 + color: "#ff521d" + alpha: 0 + } + Emitter { + id: emitter + speedFromMovement: 20 + emitRate: 80 + lifeSpan: 1500 + speed: PointDirection{ y: -90; yVariation: 50; } + acceleration: PointDirection{ xVariation: 100; yVariation: 90; } + size: 51 + sizeVariation: 53 + endSize: 64 + } +} diff --git a/examples/quick/touchinteraction/multipointtouch/content/blur-circle.png b/examples/quick/touchinteraction/multipointtouch/content/blur-circle.png Binary files differnew file mode 100644 index 0000000000..1b03cd0b2c --- /dev/null +++ b/examples/quick/touchinteraction/multipointtouch/content/blur-circle.png diff --git a/examples/quick/touchinteraction/multipointtouch/content/blur-circle3.png b/examples/quick/touchinteraction/multipointtouch/content/blur-circle3.png Binary files differnew file mode 100644 index 0000000000..dbc39cb16e --- /dev/null +++ b/examples/quick/touchinteraction/multipointtouch/content/blur-circle3.png diff --git a/examples/quick/touchinteraction/multipointtouch/content/heart-blur.png b/examples/quick/touchinteraction/multipointtouch/content/heart-blur.png Binary files differnew file mode 100644 index 0000000000..dbc38804ee --- /dev/null +++ b/examples/quick/touchinteraction/multipointtouch/content/heart-blur.png diff --git a/examples/quick/touchinteraction/multipointtouch/content/title.png b/examples/quick/touchinteraction/multipointtouch/content/title.png Binary files differnew file mode 100644 index 0000000000..d630ea2643 --- /dev/null +++ b/examples/quick/touchinteraction/multipointtouch/content/title.png diff --git a/examples/quick/touchinteraction/multipointtouch/multiflame.qml b/examples/quick/touchinteraction/multipointtouch/multiflame.qml new file mode 100644 index 0000000000..72a0ce21f8 --- /dev/null +++ b/examples/quick/touchinteraction/multipointtouch/multiflame.qml @@ -0,0 +1,91 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/ +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "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 Nokia Corporation and its Subsidiary(-ies) 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 THE COPYRIGHT +** OWNER OR CONTRIBUTORS 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 QtQuick 2.0 +import "content" + +Rectangle { + width: 360 + height: 480 + color: "black" + + MultiPointTouchArea { + anchors.fill: parent + minimumTouchPoints: 1 + maximumTouchPoints: 5 + touchPoints: [ + TouchPoint { id: touch1 }, + TouchPoint { id: touch2 }, + TouchPoint { id: touch11 }, + TouchPoint { id: touch21 }, + TouchPoint { id: touch31 } + ] + } + + ParticleFlame { + color: "red" + x: touch1.x + y: touch1.y + emitting: touch1.pressed + } + ParticleFlame { + color: "green" + x: touch2.x + y: touch2.y + emitting: touch2.pressed + } + ParticleFlame { + color: "yellow" + x: touch11.x + y: touch11.y + emitting: touch11.pressed + } + ParticleFlame { + color: "blue" + x: touch21.x + y: touch21.y + emitting: touch21.pressed + } + ParticleFlame { + color: "violet" + x: touch31.x + y: touch31.y + emitting: touch31.pressed + } +} |