Updated examples to work with 1.1
[qml-box2d:qml-box2d-folibis.git] / examples / movingBox / movingBox.qml
1 import QtQuick 2.0
2 import Box2D 1.1
3
4 Item {
5     id: screen
6     width: 800
7     height: 600
8     focus: true
9     Keys.onPressed: onKeysPressed(event)
10     Keys.onReleased: onKeysReleased(event)
11
12     function onKeysPressed(event) {
13         if (event.key == Qt.Key_Left) {
14             movableBox.moveBackward();
15         }
16         else if (event.key == Qt.Key_Right) {
17             movableBox.moveForward();
18         }
19         else if (event.key == Qt.Key_Up) {
20             movableBox.jump();
21         }
22     }
23
24     function onKeysReleased(event) {
25         if (event.isAutoRepeat)
26             return ;
27
28         if (event.key == Qt.Key_Left ||
29             event.key == Qt.Key_Right) {
30             movableBox.stopMoving();
31         }
32     }
33
34     World {
35         id: world;
36         anchors.fill: parent
37
38         Repeater {
39             model: 4
40             delegate: WoodenBox {
41                 x: Math.random() * (screen.width - 100);
42                 y: Math.random() * (screen.height / 3);
43                 rotation: Math.random() * 90;
44             }
45         }
46
47         MovableBox {
48             id: movableBox
49             width: 40
50             height: width
51         }
52
53         Wall {
54             id: ground
55             height: 20
56             anchors { left: parent.left; right: parent.right; top: parent.bottom }
57         }
58         Wall {
59             id: ceiling
60             height: 20
61             anchors { left: parent.left; right: parent.right; bottom: parent.top }
62         }
63         Wall {
64             id: leftWall
65             width: 20
66             anchors { right: parent.left; bottom: ground.top; top: ceiling.bottom }
67         }
68         Wall {
69             id: rightWall
70             width: 20
71             anchors { left: parent.right; bottom: ground.top; top: ceiling.bottom }
72         }
73     }
74 }