我正在学习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)
当“东西”发生时,我将1加到powerBarFill.width上,我认为这会使它从左到右增长。但是,它实际上是从中心生长出来的,即它的x在中心,宽度从中心向两边延伸。
保持左侧静止和增长右侧的最好方法是什么?我能把它设置成x的位置实际上在左边而不是在中间吗?看起来这可能行得通。
提前干杯
发布于 2012-03-27 16:22:24
我在创建进度条时也遇到过这个问题。问题出在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
发布于 2012-03-27 16:40:21
如果它的宽度是从两侧的X位置开始:
1)它应该从以下位置开始:
Centre - (Width when it's full / 2)
2)每帧,添加:
incrs = 1 --Amount to increase by
width = width + incrs
x = x + incrs / 2
https://stackoverflow.com/questions/9883133
复制相似问题