【问题标题】:XCAssets PNG White SpaceXCAssets PNG 白色空间
【发布时间】:2017-02-27 17:23:09
【问题描述】:

我正在用 Swift/SpriteKit 制作一些动画

我有一张背景透明的图片。 图像画布本身是 250 x 250,里面有一个大约 100x100 的球图像(所以它是一个 100x100 球的图像,被透明度包围,整个画布/图像是 250x250)

当我将此 PNG 拖放到 xcassets 中以创建图像时,球看起来更小。

如果我拿同一个球(只有 100x100 的图像,周围没有透明度)并拖放以创建不同的图像,那么新图像看起来更大,球看起来更好。

透明度是否与此有关? 任何想法为什么会这样?

谢谢!

【问题讨论】:

    标签: swift xcode sprite-kit xcasset


    【解决方案1】:

    在资产目录中,Xcode 尝试将您的整个图像放入该空间:

    假设空间大小为 150x150。为了让您的 250x250 图像适合其中,Xcode 需要将您的图像大小调整为 0.6 的比例因子。球最初是 100x100。调整大小后,它在屏幕上看起来是 60x60(但球实际上仍然是 100x100)。

    另一方面,只有球的 100x100 图像需要按 1.5 的比例因子调整大小。调整大小后,您的球看起来是 150x150。这就是它看起来更大的原因。

    当您尝试将这些图像放入UIImageView 时,也会发生同样的事情。

    但是,如果您使用这两个图像作为精灵的纹理,那么这些球在屏幕上都会显示为 100x100。这是因为精灵的大小会自动调整以适应纹理的大小,而无需您执行任何操作。

    【讨论】:

    • 好的,谢谢,这很有帮助,但我还是有点困惑;对于我都放入 3x 插槽的几张图像(我有几张不同尺寸和不同画布尺寸的图像),我应该怎么做。我应该应用什么公式?透明度/画布大小和图像之间是否存在相关性?
    • @NullHypothesis 1x 应该是原始图像。 2x 图像的宽度和高度应该是原始图像的两倍。 3x 图像的宽度和高度应该是原始图像的三倍。就这么简单。操作系统将根据设备选择要使用的图像。你不需要做任何额外的事情。透明度只是图像的一部分。
    • 哦,这非常清楚,谢谢。所以只是回顾一下以确保我理解:没有透明度,我的球应该是 100@3x、66@2x 和 33@1x,但是现在我要为这些图像添加透明度,我想使用我的 250x250(我最初认为是 3x) 并将其设为我的新 1x 然后相应地乘以 (*2 和 *3) 以获得新的 @2x 和 @3x?因此它是 250@1x、500@2x 和 750@3x) 对吗?
    • @NullHypothesis 您的球的大小应该与图像的大小成正比。我建议您使用 100x100 大小的图像,100x100 大小的球用于 1x,200x200 用于 2x,300x300 用于 3x。
    • 我以上面的球/100/250 尺寸为例,但它实际上是一个 465x642 的人,位于 882x667 的画布上。 882x667,所以我可以使用固定的图像尺寸来防止人在我播放他做某事的每一帧时变形。那么基于这些新信息,我可以应用什么“公式”呢? IE。如果我的人在第 1 帧中是 465 x 642,而他在第 4 帧中是 550 x 642(因为他的手是伸出的),那么我的想法是,只要他处于任何帧消耗的最大宽度/高度的背景上,那么他的动画是平滑的(没有翘曲)。那么我应该使用什么尺寸呢?
    猜你喜欢
    • 1970-01-01
    • 2015-09-05
    • 2021-09-26
    • 2011-01-15
    • 1970-01-01
    • 1970-01-01
    • 2015-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多