【问题标题】:Sprite initial scale based on size on screen基于屏幕尺寸的精灵初始比例
【发布时间】:2017-01-22 17:20:21
【问题描述】:

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

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

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

大多数时候相机是透视的,但有时它可以是正交的。

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

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

谢谢。

【问题讨论】:

    标签: math three.js sprite


    【解决方案1】:

    我做与此类似的事情的一种方法是创建屏幕的初始(最佳)大小,并根据屏幕的更改缩放节点。

    最简单的方法是设置场景的初始大小,其中您的精灵是您想要的确切大小。您可以在进行任何缩放之前调用它,并且只调用它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 函数中,所以看起来很流畅)。

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2012-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-09
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多