From 6e6cc55e66537ad062165d16e798ebc3cc78a76d Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Wed, 26 Oct 2011 15:36:36 +1000 Subject: Add state changing properties to QQuickSpriteImage Also adds a manual test for them. Change-Id: I5f7effe43f5784eccf7221f2bd72da480792bf89 Reviewed-by: Damian Jansen --- .../elements/content/GridViewElement.qml | 1 + .../elements/content/SpriteImageElement.qml | 145 +++++++++++++++++++++ .../elements/content/pics/squarefacesprite.png | Bin 0 -> 496 bytes .../elements/content/pics/squarefacesprite2.png | Bin 0 -> 459 bytes .../elements/content/pics/squarefacesprite3.png | Bin 0 -> 476 bytes .../elements/content/pics/squarefacesprite4.png | Bin 0 -> 553 bytes .../elements/content/pics/squarefacesprite5.png | Bin 0 -> 623 bytes .../elements/content/pics/squarefacesprite6.png | Bin 0 -> 615 bytes .../elements/content/pics/squarefacesprite7.png | Bin 0 -> 581 bytes .../elements/content/pics/squarefacespriteX.png | Bin 0 -> 474 bytes .../elements/content/pics/squarefacespriteXX.png | Bin 0 -> 255 bytes 11 files changed, 146 insertions(+) create mode 100644 tests/testapplications/elements/content/SpriteImageElement.qml create mode 100644 tests/testapplications/elements/content/pics/squarefacesprite.png create mode 100644 tests/testapplications/elements/content/pics/squarefacesprite2.png create mode 100644 tests/testapplications/elements/content/pics/squarefacesprite3.png create mode 100644 tests/testapplications/elements/content/pics/squarefacesprite4.png create mode 100644 tests/testapplications/elements/content/pics/squarefacesprite5.png create mode 100644 tests/testapplications/elements/content/pics/squarefacesprite6.png create mode 100644 tests/testapplications/elements/content/pics/squarefacesprite7.png create mode 100644 tests/testapplications/elements/content/pics/squarefacespriteX.png create mode 100644 tests/testapplications/elements/content/pics/squarefacespriteXX.png (limited to 'tests/testapplications') diff --git a/tests/testapplications/elements/content/GridViewElement.qml b/tests/testapplications/elements/content/GridViewElement.qml index 2b9884d4a9..79b48d55c3 100644 --- a/tests/testapplications/elements/content/GridViewElement.qml +++ b/tests/testapplications/elements/content/GridViewElement.qml @@ -123,5 +123,6 @@ Rectangle { ListElement { label: "Shape"; help: "The Shape element allows you to specify an area for affectors and emitter." } ListElement { label: "TrailEmitter"; help: "The TrailEmitter element allows you to emit logical particles from other logical particles." } ListElement { label: "Direction"; help: "The Direction elements allow you to specify a vector space." } + ListElement { label: "SpriteImage"; help: "The SpriteImage element plays stochastic sprite animations." } } } diff --git a/tests/testapplications/elements/content/SpriteImageElement.qml b/tests/testapplications/elements/content/SpriteImageElement.qml new file mode 100644 index 0000000000..2015eabe8a --- /dev/null +++ b/tests/testapplications/elements/content/SpriteImageElement.qml @@ -0,0 +1,145 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.0 + +Item { + id: spriteimageelementtest + anchors.fill: parent + property string testtext: "" + SpriteImage { + id: spriteimage + sprites: [Sprite { + name: "happy" + source: "pics/squarefacesprite2.png" + frames: 6 + duration: 120 + to: {"silly": 1, "sad":0} + }, Sprite { + name: "silly" + source: "pics/squarefacesprite.png" + frames: 6 + duration: 120 + to: {"happy": 1, "sad": 0} + }, Sprite { + name: "sad" + source: "pics/squarefacesprite3.png" + frames: 6 + duration: 120 + to: {"evil": 0.5, "sad": 1, "cyclops" : 0} + }, Sprite { + name: "cyclops" + source: "pics/squarefacesprite4.png" + frames: 6 + duration: 120 + to: {"love": 0.1, "boggled": 0.1, "cyclops" : 0.1} + }, Sprite { + name: "evil" + source: "pics/squarefacesprite5.png" + frames: 6 + duration: 120 + to: {"sad": 1.0, "cyclops" : 0} + }, Sprite { + name: "love" + source: "pics/squarefacesprite6.png" + frames: 6 + duration: 120 + to: {"love": 0.1, "boggled": 0.1, "cyclops" : 0.1} + }, Sprite { + name: "boggled" + source: "pics/squarefacesprite7.png" + frames: 6 + duration: 120 + to: {"love": 0.1, "boggled": 0.1, "cyclops" : 0.1, "dying":0} + }, Sprite { + name: "dying" + source: "pics/squarefacespriteX.png" + frames: 4 + duration: 120 + to: {"dead":1.0} + }, Sprite { + name: "dead" + source: "pics/squarefacespriteXX.png" + frames: 1 + duration: 10000 + }] + + width: 300 + height: 300 + anchors.horizontalCenter: parent.horizontalCenter + anchors.bottom: parent.bottom + } + + + SystemTestHelp { id: helpbubble; visible: statenum != 0 + anchors { top: parent.top; horizontalCenter: parent.horizontalCenter; topMargin: 50 } + } + BugPanel { id: bugpanel } + + states: [ + State { name: "start"; when: statenum == 1 + StateChangeScript { script: spriteimage.jumpTo("happy"); } + PropertyChanges { target: spriteimageelementtest + testtext: "This is a SpriteImage element. It should be animating currently."+ + "It should alternate between winking and sticking out its tongue." } + }, + State { name: "stochastic2"; when: statenum == 2 + StateChangeScript { script: spriteimage.jumpTo("sad"); } + PropertyChanges { target: spriteimageelementtest + testtext: "The sprite should now be animating between frowning and being evil."+ + "This should not be alternating, but mostly frowning with the occasional evil eyes."+ + "After an evil eyes animation, it should return to frowning at least once." } + }, + State { name: "stochastic3"; when: statenum == 3 + StateChangeScript { script: spriteimage.jumpTo("cyclops"); } + PropertyChanges { target: spriteimageelementtest + testtext: "The sprite should now be animating fairly randomly between three animations where it does silly things with its eyes.\n"+ + "Next the sprite will animate into a static 'dead' state."+ + "When it does, it should first animate to and play through the 'big eyes' animation (if it is not currently playing that animation) before it enters the dying animation."} + }, + State { name: "dead"; when: statenum == 4 + PropertyChanges { target: spriteimage; goalState: "dead" } + PropertyChanges { target: spriteimageelementtest + testtext: "After a brief dying animation, the image should now be static.\n"+ + "Advance to restart the test." } + } + ] +} diff --git a/tests/testapplications/elements/content/pics/squarefacesprite.png b/tests/testapplications/elements/content/pics/squarefacesprite.png new file mode 100644 index 0000000000..f9a5d5fcce Binary files /dev/null and b/tests/testapplications/elements/content/pics/squarefacesprite.png differ diff --git a/tests/testapplications/elements/content/pics/squarefacesprite2.png b/tests/testapplications/elements/content/pics/squarefacesprite2.png new file mode 100644 index 0000000000..7106a520a4 Binary files /dev/null and b/tests/testapplications/elements/content/pics/squarefacesprite2.png differ diff --git a/tests/testapplications/elements/content/pics/squarefacesprite3.png b/tests/testapplications/elements/content/pics/squarefacesprite3.png new file mode 100644 index 0000000000..f4e6f26856 Binary files /dev/null and b/tests/testapplications/elements/content/pics/squarefacesprite3.png differ diff --git a/tests/testapplications/elements/content/pics/squarefacesprite4.png b/tests/testapplications/elements/content/pics/squarefacesprite4.png new file mode 100644 index 0000000000..1e094eed4a Binary files /dev/null and b/tests/testapplications/elements/content/pics/squarefacesprite4.png differ diff --git a/tests/testapplications/elements/content/pics/squarefacesprite5.png b/tests/testapplications/elements/content/pics/squarefacesprite5.png new file mode 100644 index 0000000000..1cfc5c7f8c Binary files /dev/null and b/tests/testapplications/elements/content/pics/squarefacesprite5.png differ diff --git a/tests/testapplications/elements/content/pics/squarefacesprite6.png b/tests/testapplications/elements/content/pics/squarefacesprite6.png new file mode 100644 index 0000000000..b040139a9e Binary files /dev/null and b/tests/testapplications/elements/content/pics/squarefacesprite6.png differ diff --git a/tests/testapplications/elements/content/pics/squarefacesprite7.png b/tests/testapplications/elements/content/pics/squarefacesprite7.png new file mode 100644 index 0000000000..b1e5e4e339 Binary files /dev/null and b/tests/testapplications/elements/content/pics/squarefacesprite7.png differ diff --git a/tests/testapplications/elements/content/pics/squarefacespriteX.png b/tests/testapplications/elements/content/pics/squarefacespriteX.png new file mode 100644 index 0000000000..93a0181dd0 Binary files /dev/null and b/tests/testapplications/elements/content/pics/squarefacespriteX.png differ diff --git a/tests/testapplications/elements/content/pics/squarefacespriteXX.png b/tests/testapplications/elements/content/pics/squarefacespriteXX.png new file mode 100644 index 0000000000..3159efe246 Binary files /dev/null and b/tests/testapplications/elements/content/pics/squarefacespriteXX.png differ -- cgit v1.2.3