Difference between revisions of "Application:getDeviceOrientation"

From GiderosMobile
m (Text replacement - "<source" to "<syntaxhighlight")
Line 3: Line 3:
  
 
=== Description ===
 
=== Description ===
Gets the device orientation (and not what is in project properties as done with ''getOrientation''). Please check Accelerometer example project for usage.
+
Gets the device orientation (and not what is in project properties as done with ''getOrientation''). Please check Accelerometer sample project for usage.
 
 
 
<syntaxhighlight lang="lua">
 
<syntaxhighlight lang="lua">
 
(string) = application:getDeviceOrientation()
 
(string) = application:getDeviceOrientation()
Line 11: Line 10:
 
=== Return values ===
 
=== Return values ===
 
'''Returns''' (string) values can be: "portrait", "portraitUpsideDown", "landscapeLeft", "landscapeRight"
 
'''Returns''' (string) values can be: "portrait", "portraitUpsideDown", "landscapeLeft", "landscapeRight"
 +
 +
=== Example ===
 +
'''Accelerometer sample project excerpt'''
 +
<syntaxhighlight lang="lua">
 +
local function compensateAccelerometer(x, y, z)
 +
local orientation = application:getOrientation()
 +
local deviceOrientation = application:getDeviceOrientation()
 +
 +
local p1 = orientation == "portrait" or orientation == "portraitUpsideDown"
 +
local p2 = deviceOrientation == "portrait" or deviceOrientation == "portraitUpsideDown"
 +
 +
local rotation = (p1 == p2) and deviceOrientation or orientation
 +
 +
if rotation == "portrait" then
 +
return x, y, z
 +
elseif rotation == "landscapeLeft" then
 +
return -y, x, z
 +
elseif rotation == "portraitUpsideDown" then
 +
return -x, -y, z
 +
elseif rotation == "landscapeRight" then
 +
return y, -x, z
 +
end
 +
end
 +
</syntaxhighlight>
  
 
{{Application}}
 
{{Application}}

Revision as of 18:00, 12 January 2025

Available since: Gideros 2014.01
Class: Application

Description

Gets the device orientation (and not what is in project properties as done with getOrientation). Please check Accelerometer sample project for usage.

(string) = application:getDeviceOrientation()

Return values

Returns (string) values can be: "portrait", "portraitUpsideDown", "landscapeLeft", "landscapeRight"

Example

Accelerometer sample project excerpt

local function compensateAccelerometer(x, y, z)
	local orientation = application:getOrientation()
	local deviceOrientation = application:getDeviceOrientation()

	local p1 = orientation == "portrait" or orientation == "portraitUpsideDown"
	local p2 = deviceOrientation == "portrait" or deviceOrientation == "portraitUpsideDown"
	
	local rotation = (p1 == p2) and deviceOrientation or orientation

	if rotation == "portrait" then
		return x, y, z
	elseif rotation == "landscapeLeft" then
		return -y, x, z
	elseif rotation == "portraitUpsideDown" then
		return -x, -y, z
	elseif rotation == "landscapeRight" then
		return y, -x, z
	end	
end