Lua 电晕SDK:从左到右填充一个条
我正在学习Corona SDK,也是lua的新手(我主要做ruby和一些javascript) 我有一个酒吧,我想填补用户做的东西。我将其设置如下:Lua 电晕SDK:从左到右填充一个条,lua,coronasdk,Lua,Coronasdk,我正在学习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
--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位置实际上是在左手边而不是在中间吗?看来这样就行了
提前干杯我在创建进度条时也遇到了这个问题。问题在于rect的参考点。正如您所注意到的,默认参考点位于对象的中心。你可以用它来改变它。我相信您希望使用
显示.BottomLeftReferencePoint
值:
powerBar:setReferencePoint(display.BottomLeftReferencePoint)
请记住,在设置x、y值之前必须先设置此值。因此,在本例中,您需要在创建矩形后设置参考点,然后再次为x、y赋值(即使您已经在newRect
构造函数中这样做了):
如果其宽度是从两侧的X位置开始的: 1) 应于以下时间开始:
Centre - (Width when it's full / 2)
2) 每帧添加:
incrs = 1 --Amount to increase by
width = width + incrs
x = x + incrs / 2
McStretch的解决方案可能效果最好,但该解决方案几乎适用于所有平台。我建议接受他的想法,因为它更好地回答了您的问题。两者都比我每次更新填充栏时删除并重新绘制填充栏的临时解决方案要好:)
incrs = 1 --Amount to increase by
width = width + incrs
x = x + incrs / 2