Skip to content

Instantly share code, notes, and snippets.

@erinlin
Last active August 29, 2015 13:56
Show Gist options
  • Save erinlin/8819055 to your computer and use it in GitHub Desktop.
Save erinlin/8819055 to your computer and use it in GitHub Desktop.
CoronaSDK-moveTo-mulit-screen support
--[[
moveTo function
erinylin.com
for Graphics 2.0
]]--
display.setDefault("background", 1, 1, 1)
function moveTo(object, params)
local T = display.screenOriginY -- Top
local L = display.screenOriginX -- Left
local R = display.viewableContentWidth - L -- Right
local B = display.viewableContentHeight - T-- Bottom
local cX, cY = display.contentCenterX, display.contentCenterY
object.x, object.y = 0, 0
local bounds = object.contentBounds
local offsetX = (bounds.xMax + bounds.xMin) * 0.5
local offsetY = (bounds.yMax + bounds.yMin) * 0.5
local hW, hH = 0.5 * object.contentWidth , 0.5 * object.contentHeight
if params.left then
object.x = params.left+L + hW - offsetX
elseif params.right then
object.x = R-params.right - hW - offsetX
elseif params.centerX then
object.x = params.centerX + cX - offsetX
end
if params.bottom then
object.y = B-params.bottom - hH - offsetY
elseif params.top then
object.y = params.top + T + hH - offsetY
elseif params.centerY then
object.y = params.centerY + cY - offsetY
end
return object
end
-------------------------------------
-- usage
-------------------------------------
local rect1 = display.newRect( 0, 0, 50, 50 )
rect1:setFillColor(1, 0, 0)
moveTo(rect1, {top=0, left=0})
local rect2 = display.newRect( 0, 0, 50, 50 )
rect2:setFillColor(1, 0.2, 0)
moveTo(rect2, {top=0, right=0})
local rect3 = display.newRect( 0, 0, 50, 50 )
rect3:setFillColor(1, 0.4, 0)
moveTo(rect3, {bottom=0, right=0})
local rect4 = display.newRect( 0, 0, 50, 50 )
rect4:setFillColor(1, 0.6, 0)
moveTo(rect4, {bottom=0, left=0})
local group = display.newGroup()
local rect5 = display.newRect( 0, 0, 50, 50 )
rect5:setFillColor(1, 1, 0)
group:insert(rect5)
local rect6 = display.newRect( 0, 50, 50, 50 )
rect6:setFillColor(1, 0, 1)
group:insert(rect6)
-- ignore anchor settings
group.anchorX, group.anchorY= 0, 0
-- grouping moveTo
moveTo(group, {centerX=0, centerY=0})
local rect7 = display.newRect( 0, 0, 50, 50 )
rect7:setFillColor(0, 1, 1)
rect7.anchorX, rect7.anchorY= 0, 0
moveTo(rect7, {top=0, left=50})
@green-coder
Copy link

"useage" -> "usage"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment