2015年3月19日 星期四

[Corona SDK] 為什麼 display.newImage() 的位置怪怪的? - anchor的用法

如果我們想要在畫面放上一張圖片:
local background = display.newImage( "320x480.jpg",0,0)
很簡單,只要一行,
用模擬器看一下...
anchorX=0.5, anchorY=0.5
耶?奇怪了,怎麼照片位置好像不太對,
原來,每個物件都有所謂的anchorX和anchorY,
anchor就是物件做任何操作的中心點,
不管你是移動,放大縮小,旋轉等等
上面的圖是從coronalabs官網的說明抓下來的,
anchorX/anchorY是從物件的左上角(0, 0)到右下角(1, 1),
預設值是(0.5, 0.5),也就是物件的中心點,
(anchor的數字是和物件大小相比的比例值)
也就是說,display.newImage( "320x480.jpg",0,0)是把圖片的中心點放到(0, 0)的位置,
當然就會看到第一張圖的樣子,
那要怎麼調回來讓圖位置正確呢?



local background = display.newImage( "320x480.jpg",0,0)
background.anchorX=0
background.anchorY=0
只要將anchor調到0就可以了
anchorX = 0, anchorY = 0
不過,你會發現demo的程式裡,好像都不是這樣做的,
沒錯,通常我們不會去改anchor預設值,除非有需要,
因為位置是相對的,
所以你可以用以下的做法:
local xpos = display.contentCenterX
local ypos = display.contentCenterY
local background = display.newImage( "320x480.jpg", xpos, ypos )
或者有人是這樣用
local xpos = display.contentWidth/2
local ypos = display.contentHeight/2
local background = display.newImage( "320x480.jpg", xpos, ypos )
意思都是一樣,因為anchor預設是在圖片中央, 將圖片中央放在畫面中央,當然就會是對的...

沒有留言:

張貼留言