summaryrefslogtreecommitdiffstats
path: root/tests/manual/spritegrid
diff options
context:
space:
mode:
authorMike Krus <mike.krus@kdab.com>2017-06-28 23:13:41 +0200
committerSean Harmer <sean.harmer@kdab.com>2017-07-08 09:08:40 +0000
commita61bc1bd653559637146d9e0ba0884de3e3f1a12 (patch)
tree1e08702bfc4aaa779c26bc1e0d25703818ddcb44 /tests/manual/spritegrid
parent55844801dc09da2d05e6f581ce7ad3d4d334b5c1 (diff)
Introduce QSpriteSheet
a generalised non-regular grid sprite sheet. Sprites are defined by a list of QSpriteSheetItem, essentially QRect for now (may introduce rotation later) Uses wrapper class to expose qml property list. Change-Id: I5a8d6804c32d59c27e1dc823c61d56bb169ca498 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'tests/manual/spritegrid')
-rw-r--r--tests/manual/spritegrid/main.qml84
1 files changed, 68 insertions, 16 deletions
diff --git a/tests/manual/spritegrid/main.qml b/tests/manual/spritegrid/main.qml
index d5ff7f259..ca3d7fd92 100644
--- a/tests/manual/spritegrid/main.qml
+++ b/tests/manual/spritegrid/main.qml
@@ -75,7 +75,7 @@ Entity {
id : external_forward_renderer
activeFrameGraph : ForwardRenderer {
camera: camera
- clearColor: "white"
+ clearColor: "lightgrey"
}
}
@@ -88,43 +88,95 @@ Entity {
id: mesh
}
- Transform {
- id: transform
- scale: 8
- rotation: fromAxisAndAngle(Qt.vector3d(1, 0, 0), 45)
- }
-
SpriteGrid {
- id: sprites
+ id: spriteGrid
rows: 2
columns: 6
texture: textureLoader
}
+ SpriteSheet {
+ id:spriteSheet
+ texture: textureLoader
+
+ SpriteItem { x: 0; y: 0; width: 250; height: 172 }
+ SpriteItem { x: 276; y: 0; width: 250; height: 172 }
+ SpriteItem { x: 550; y: 0; width: 250; height: 172 }
+ SpriteItem { x: 826; y: 0; width: 250; height: 172 }
+ SpriteItem { x: 1100; y: 0; width: 250; height: 172 }
+ SpriteItem { x: 1376; y: 0; width: 250; height: 172 }
+ SpriteItem { x: 0; y: 198; width: 250; height: 172 }
+ SpriteItem { x: 276; y: 198; width: 250; height: 172 }
+ SpriteItem { x: 550; y: 198; width: 250; height: 172 }
+ SpriteItem { x: 826; y: 198; width: 250; height: 172 }
+ SpriteItem { x: 1100; y: 198; width: 250; height: 172 }
+ SpriteItem { x: 1376; y: 198; width: 250; height: 172 }
+ }
+
+ Transform {
+ id: transform1
+ scale: 8
+ rotation: fromAxisAndAngle(Qt.vector3d(1, 0, 0), 45)
+ translation: Qt.vector3d(-6, 0, 0)
+ }
+
TextureMaterial {
- id: material
+ id: material1
texture: TextureLoader {
id: textureLoader
source: "spritegrid.png"
mirrored: false
}
- textureTransform: sprites.textureTransform
+ textureTransform: spriteGrid.textureTransform
}
Entity {
- id: mainEntity
- objectName: "mainEntity"
- components: [ mesh, material, transform ]
+ components: [ mesh, material1, transform1 ]
}
+
+ Transform {
+ id: transform2
+ scale: 8
+ rotation: fromAxisAndAngle(Qt.vector3d(1, 0, 0), 45)
+ translation: Qt.vector3d(6, 0, 0)
+ }
+
+ TextureMaterial {
+ id: material2
+ texture: material1.texture
+ textureTransform: spriteSheet.textureTransform
+ }
+
+ Entity {
+ components: [ mesh, material2, transform2 ]
+ }
+
+
+ Transform {
+ id: transform3
+ scale3D: Qt.vector3d(12, 4, 4)
+ rotation: fromAxisAndAngle(Qt.vector3d(1, 0, 0), 90)
+ translation: Qt.vector3d(0, -6, 0)
+ }
+
+ TextureMaterial {
+ id: material3
+ texture: material1.texture
+ }
+
+ Entity {
+ components: [ mesh, material3, transform3 ]
+ }
+
+
Timer {
interval: 1000
repeat: true
running: true
onTriggered: {
- var n = sprites.currentIndex + 1
- n = (n >= sprites.rows * sprites.columns) ? 0 : n
- sprites.currentIndex = n
+ spriteGrid.currentIndex = (spriteGrid.currentIndex + 1) % (spriteGrid.rows * spriteGrid.columns)
+ spriteSheet.currentIndex = (spriteSheet.currentIndex + 1) % (spriteSheet.sprites.length)
}
}
}