我正在学习Corona SDK,也是lua的新手(我主要做ruby和一些javascript)。
我有一个酒吧,我想填写用户做的东西。我把它设置如下:
--outer rectangle
powerBar = display.newRect(210, 6, 24, 9)
powerBar.strokeWidth = 1
powerBar:setStrokeColor(254,203,50)
powerBar:setFillColor(0,0,0,0)
--inner rectangle which fills up
powerBarFill = display.newRect(211,7,0,7)
powerBarFill:setFillColor(234,183,30)
当“东西”发生时,我向powerBarFill.width添加1,我认为这会使它从左向右增长。但是,它实际上是从中心生长出来的,即它的x位于中心,宽度从那里向两侧延伸。
什么是保持左侧静止并增长右侧的最佳方法?我可以设置它的x位置实际上是在左侧而不是在中间吗?似乎可能会这样做。
提前欢呼
答案 0 :(得分:5)
创建进度条时我也遇到了这个问题。问题在于rect的参考点。您已经注意到,默认参考点位于对象的中心。您可以使用object:setReferencePoint()进行更改。我相信你想使用display.BottomLeftReferencePoint
值:
powerBar:setReferencePoint(display.BottomLeftReferencePoint)
请记住,在设置x,y值之前必须设置此值。因此,在您的情况下,您需要在创建矩形后设置参考点,然后再次为x,y分配值(即使您已在newRect
构造函数中执行此操作):
powerBar = display.newRect(210, 6, 24, 9)
powerBar:setReferencePoint(display.BottomLeftReferencePoint)
powerBar.x, powerBar.y = 210, 6
答案 1 :(得分:2)
如果它的宽度来自两侧的X位置:
1)它应该从:
开始Centre - (Width when it's full / 2)
2)每一帧,添加:
incrs = 1 --Amount to increase by
width = width + incrs
x = x + incrs / 2