【发布时间】:2017-01-22 17:20:21
【问题描述】:
我有一个具有宽度和高度(纹理大小)的 Sprite 对象。
我想在屏幕上显示与原始纹理大小相同的精灵。
由于场景大小、相机位置和纹理大小不是恒定值,我需要一些方法来缩放 Sprite。
大多数时候相机是透视的,但有时它可以是正交的。
所以我需要 2 个比例公式。
我找到了一些关于如何在缩放时使 Sprite 大小保持不变的答案,但在这个计算中,初始比例是未知的。
谢谢。
【问题讨论】:
我有一个具有宽度和高度(纹理大小)的 Sprite 对象。
我想在屏幕上显示与原始纹理大小相同的精灵。
由于场景大小、相机位置和纹理大小不是恒定值,我需要一些方法来缩放 Sprite。
大多数时候相机是透视的,但有时它可以是正交的。
所以我需要 2 个比例公式。
我找到了一些关于如何在缩放时使 Sprite 大小保持不变的答案,但在这个计算中,初始比例是未知的。
谢谢。
【问题讨论】:
我做与此类似的事情的一种方法是创建屏幕的初始(最佳)大小,并根据屏幕的更改缩放节点。
最简单的方法是设置场景的初始大小,其中您的精灵是您想要的确切大小。您可以在进行任何缩放之前调用它,并且只调用它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
每次更改屏幕尺寸时,您都必须创建比例并设置纹理尺寸。 (很可能在 Update 函数中,所以看起来很流畅)。
希望这会有所帮助!
【讨论】: