Warning, /education/gcompris/external/qml-box2d/examples/revolute/revolute.qml is written in an unsupported language. File is not indexed.
0001 import QtQuick 2.0 0002 import Box2D 2.0 0003 import "../shared" 0004 0005 Item { 0006 id: screen 0007 width: 800 0008 height: 600 0009 focus: true 0010 0011 Keys.onPressed: { 0012 if (event.key === Qt.Key_Left) { 0013 revolute.motorSpeed -= 10; 0014 } 0015 else if (event.key === Qt.Key_Right) { 0016 revolute.motorSpeed += 10 0017 } 0018 } 0019 0020 Text { 0021 anchors { 0022 right: parent.right 0023 top: parent.top 0024 left: parent.left 0025 } 0026 height: 40 0027 horizontalAlignment: Text.AlignHCenter; 0028 text: "Left/Right buttons to control the speed, Mouse click to activate/deactivate motor" 0029 } 0030 0031 // BOX2D WORLD 0032 World { id: physicsWorld } 0033 0034 PhysicsItem { 0035 id: rod 0036 sleepingAllowed: false 0037 bodyType: Body.Dynamic 0038 x: 350 0039 y: 300 0040 0041 width: 250 0042 height: 40 0043 0044 fixtures: Box { 0045 width: rod.width 0046 height: rod.height 0047 density: 1; 0048 friction: 1; 0049 restitution: 0.3; 0050 } 0051 0052 Rectangle { 0053 color: "green" 0054 radius: 6 0055 anchors.fill: parent 0056 } 0057 } 0058 0059 PhysicsItem { 0060 id: middle 0061 0062 x: 400 0063 y: 300 0064 0065 fixtures: Circle { radius: itemShape.radius } 0066 0067 Rectangle { 0068 id: itemShape 0069 radius: width / 2 0070 width: 40; height: 40 0071 color: "black" 0072 } 0073 } 0074 0075 RevoluteJoint { 0076 id: revolute 0077 maxMotorTorque: 1000 0078 motorSpeed: 0 0079 enableMotor: false 0080 bodyA: middle.body 0081 bodyB: rod.body 0082 localAnchorA: Qt.point(20,20) 0083 } 0084 0085 // Debug 0086 DebugDraw { 0087 id: debugDraw 0088 world: physicsWorld 0089 opacity: 0.5 0090 visible: false 0091 } 0092 0093 MouseArea { 0094 anchors.fill: parent 0095 onClicked: revolute.enableMotor = !revolute.enableMotor 0096 } 0097 }