基于屏幕尺寸的精灵初始比例

时间:2016-09-14 19:31:46

标签: math three.js sprite

我有一个Sprite对象,其宽度和高度(纹理大小)。

我想在屏幕上显示与原始纹理大小相同的精灵。

由于场景大小,相机位置和纹理大小不是常量值,我需要一些方法来缩放Sprite。

大部分时间相机都是透视,但有时它可能是正交的。

所以我需要2个公式用于比例。

我找到了一些关于如何在缩放时使Sprite大小保持不变的答案,但在此计算中初始比例未知。

感谢。

1 个答案:

答案 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

每次更改屏幕大小时,您都必须创建比例并设置纹理尺寸。 (最有可能在更新功能中看起来很流畅。)

希望这有帮助!