我刚开始学习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