我剛開始學習iphone開發,在朋友推薦Corona SDK以方便使用後,我終於決定嘗試一下。計算一個圓形包裝?
現在,我剛開始學習如何使用加速計和繪圖形狀,並通過傾斜設備來移動它們。所以我認爲我可以製作一個關卡工具作爲我的第一個應用程序,並且在傾斜時我可以使用所有工具,但現在我決定嘗試製作一個平坦的關卡,但我無法弄清楚如何讓泡泡留在一個圓圈內。
繼承人我如何限制氣泡從瓶外移動在水平位置:
function bubbleBounds()
-- left side
if bubble.x < (_W/2 - vial.width/2 + bubble.width/2) then
bubble.x = (_W/2 - vial.width/2 + bubble.width/2)
end
-- right side
if bubble.x > (_W/2 + vial.width/2 - bubble.width/2) then
bubble.x = (_W/2 + vial.width/2 - bubble.width/2)
end
end
據我瞭解,你應該總是讓圖像與2的冪,所以我做了一個圓圈,直徑256像素,我的泡泡是64像素。我如何編寫一個限制氣泡移出圓圈的函數?
感謝 辛迪
@Mac,我知道的圖標大小,但2的冪遊戲優化內存只是使用了吧?
@Tim C;
所以,如果我這樣寫我的界限功能;
local bubbleRadius = 32
local circleRadius = 128
local sqrt = math.sqrt
local centerX = display.contentWidth/2;
local centerY = display.contentHeight/2;
local function bubbleBounds()
Length = sqrt(centerX * centerX + centerY * centerY)
normalizedX = centerX/Length;
normalizedY = centerY/Length;
limitedX = normalizedX * circleRadius;
limitedY = normalizedY * circleRadius;
if bubble.x < centerX - limitedX + bubbleRadius then
bubble.x = centerX - limitedX + bubbleRadius
end
if bubble.x > centerX + limitedX - bubbleRadius then
bubble.x = centerX + limitedX - bubbleRadius
end
if bubble.y < centerY - limitedY + bubbleRadius then
bubble.y = centerY - limitedY + bubbleRadius
end
if bubble.y > centerY + limitedY - bubbleRadius then
bubble.y = centerY + limitedY - bubbleRadius
end
end
Runtime:addEventListener("enterFrame", bubbleBounds)
但現在,當我運行這個它是長方形的包裝,而不是一個圓圈,加速度計還充當真正奇怪和laggy。以下是我如何設置加速度計:
local acc = {}
function acc:accelerometer(event)
bubble.x = centerX - (centerX * event.yGravity * 2);
bubble.y = centerY - (centerY * event.xGravity * 2);
end
Runtime:addEventListener("accelerometer", acc)
這是哪裏出錯了?
多達保持圖像冪的兩個維度是偉大的,運氣好堅持在iPhone上:圖標爲57x57像素,小圖標29x29像素,等等...... :) – Mac 2011-05-28 05:13:48
請不要*使用解答發佈更新或提出更多問題。堆棧溢出不是一個論壇。要麼更新您的問題,要麼對現有答案添加評論。謝謝。 – Kev 2011-05-28 15:58:41
@Kev,對不起。 – 2011-05-29 10:41:07