我有一个Sprite对象,其宽度和高度(纹理大小)。
我想在屏幕上显示与原始纹理大小相同的精灵。
由于场景大小,相机位置和纹理大小不是常量值,我需要一些方法来缩放Sprite。
大部分时间相机都是透视,但有时它可能是正交的。
所以我需要2个公式用于比例。
我找到了一些关于如何在缩放时使Sprite大小保持不变的答案,但在此计算中初始比例未知。
感谢。
答案 0 :(得分:0)
我做类似的一种方法是创建一个初始(最佳)屏幕大小,并根据屏幕的变化缩放节点。
最简单的方法是获得场景的初始大小,其中精灵的大小与您想要的大小完全相同。您可以在进行任何缩放之前将其称为 ,只需将其称为 ONCE :
var initialScreenWidth = self.size.width
var initialScreenHeight = self.size.height
现在,每当您更改屏幕大小(例如缩放)时,您必须找到屏幕更改的比例:
var scaleWidth = self.size.width/initialScreenWidth
var scaleHeight = self.size.height/initialScreenHeight
既然你有这两个尺度,你所要做的就是:
texture.xScale = scaleWidth
texture.yScale = scaleHeight
每次更改屏幕大小时,您都必须创建比例并设置纹理尺寸。 (最有可能在更新功能中看起来很流畅。)
希望这有帮助!