Type Number Event gyroscope Revision Release 2024.3703 Keywords gyroscope, deltaTime See also system.setGyroscopeInterval()
The time in seconds since the last gyroscope event.
Gyroscope measurements will not be recorded at the exact times specified by the system.setGyroscopeInterval() function. This means you cannot assume that a configured interval of 10 Hz (i.e.: 100 milliseconds) will yield measurements recorded exactly 100 milliseconds apart. These measurements will likely be recorded slightly late. This is a limitation of the operating system on both iOS and Android. To compensate for this, event.deltaTime is provided to help make your rotational calculations as accurate as possible.
You can use event.deltaTime
to calculate the approximate rotation distance traveled since the last gyroscope measurement with the following equation:
delta radians = rotation rate * delta time
Please note that this is an approximation, because the device has not likely rotated at a constant speed since the last gyroscope measurement. This means that the summed distance over time will grow in error. Increasing the measurement update interval via the system.setGyroscopeInterval() function will help reduce that error.
-- Called when a new gyroscope measurement has been received local function onGyroscopeDataReceived( event ) -- Calculate approximate rotation traveled via delta time -- Remember that rotation rate is in radians per second local deltaRadians = event.zRotation * event.deltaTime local deltaDegrees = deltaRadians * (180/math.pi) end -- Set up the above function to receive gyroscope events if the sensor exists if system.hasEventSource( "gyroscope" ) then Runtime:addEventListener( "gyroscope", onGyroscopeDataReceived ) end