Qt Sensors - Maze QML Example¶
Maze in QML¶
The Maze example demonstrates the TiltSensor QML type.
To write a QML application that will use the TiltSensor QML sensors type you need to do the following steps:
To import the Qt Sensors QML types into your application, use the following import statement in your .qml file:
import QtSensors
Then, add the Sensor QML types into your qml file.
In this example we use the TiltSensor :
TiltSensor { id: tiltSensor active: true }
The mouse should move by a factor of the tilt value:
var xstep = 0; xstep = tiltSensor.reading.yRotation * 0.1 //acceleration var ystep = 0; ystep = tiltSensor.reading.xRotation * 0.1 //acceleration
The walk direction of the mouse takes into account some collision detection:
if (xstep < 1 && xstep > 0) xstep = 0 else if (xstep > -1 && xstep < 0) xstep = 0 if (ystep < 1 && ystep > 0) ystep = 0; else if (ystep > -1 && ystep < 0) ystep = 0; if ((xstep < 0 && mouseCtrl.x > 0 && Lib.canMove(mouseCtrl.x + xstep,mouseCtrl.y))) { xval = mouseCtrl.x + xstep; } else if (xstep > 0 && mouseCtrl.x < (Lib.cellDimension * (Lib.dimension - 1)) && Lib.canMove(mouseCtrl.x + xstep,mouseCtrl.y)) { xval = mouseCtrl.x + xstep; } else xval = mouseCtrl.x; if (ystep < 0 && mouseCtrl.y > 0 && Lib.canMove(mouseCtrl.x, mouseCtrl.y + ystep)) { yval = mouseCtrl.y + ystep; } else if (ystep > 0 && (mouseCtrl.y < (Lib.cellDimension * (Lib.dimension - 1))) && Lib.canMove(mouseCtrl.x, mouseCtrl.y + ystep)) { yval = mouseCtrl.y + ystep; } else yval = mouseCtrl.y mouseCtrl.move(xval, yval);
The rotation of the mouse image is determined according to the angle that the mouse is moving.
var a = newy - mouse.y var b = newx - mouse.x angle = Math.atan2(-b, a) * mouse.radians_to_degrees if (angle < 0) angle = 360 + angle img.rotation = angle mouse.x = newx; mouse.y = newy;
© 2022 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.