Qt Sensors - Maze QML Example

Image non disponible

Maze in QML

To write a QML application that will use the TiltSensor QML sensors type you need to do the following steps:

Import the QtSensors 5.x declarative plugin:

 
Sélectionnez
import QtSensors 5.0

Add the Sensor QML types into your qml file.

In this example we use the TiltSensor with values based in degrees and an accuracy of 5 degree:

 
Sélectionnez
    TiltSensor {
        id: tiltSensor
        active: true
    }

Starting the sensor can be done by setting the 'enabled' property to true:

 
Sélectionnez
        onTriggered: {
            if (!tiltSensor.enabled)
                tiltSensor.active = true;

The mouse should move by a factor of the tilt value:

 
Sélectionnez
                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:

 
Sélectionnez
                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 (yste