我有关于缩放对象的问题。我有一个函数来计算一组对象的目标比例。比例取决于对象的数量。同时我希望对象具有最大比例。我希望对象不超过55像素宽。所以我将55除以对象宽度以获得最大比例。所以我提出了以下功能:
private function setScale():Number
{
//The 6 is just a random number I chose.
scale = 6/amountObjects;
if (scale >= 55/averageObjectWidth)
{
scale = 55/averageObjectWidth;
}
return scale;
}
我遇到的问题是,当我多次执行此功能时,我最终得到了错误的比例。我将在以下示例中说明这一点:
我有十个物体,因此比例为0.6。
平均物体宽度为138,因此最大比例约为0.4。
所以我会用这个比例因子缩放对象。新的宽度将是55。
然后当对象数量发生变化时,我再次运行此功能。现在有9个对象,基于对象数量的新比例变为约0.7。现在这是泡菜,因为当我做scale = 55/averageObjectWidth
时新对象宽度是55 ...我得到1!这意味着它将跳过if语句并返回0.7的缩放。
我想要做的就是让这个类根据对象的数量返回一个比例,它仍然在55的宽度之下。
我希望我很清楚,谢谢你的时间。
答案 0 :(得分:0)
我认为这些物品是精灵是否正确? 在这种情况下,当您设置精灵的比例/宽度/高度时,您正在设置其比例。因此,要获得'真实'/未缩放的宽度,您可以使用sprite.width / sprite.scaleX(或将比例设置回1,但您必须再次将其设置回来,这可能会导致奇怪的图形故障)