ios - 带有 Sprite Kit 的硬件特定图集在 iPad 上被炸毁

标签 ios image ipad sprite-kit

观看 WWDC 2013 的 503 号谈话“使用 Sprite Kit 设计游戏”,他们说纹理图集的好处之一是您只需将一个文件夹拖放到 XCode,它就会为不同的设备(OSX、OSX、 iPhone、iPhone Retina、iPad...)

对吗?

我正在删除一个包含 Sprite 动画帧的文件夹,虽然它在 iPad 2 和 iPad retina 上看起来大小相同,但它的大小是正确大小的两倍,当然,在 iPad retina 中图像是像素化。

我做错了什么?

最佳答案

简短回答:
在 .atlas 文件夹中的每个视网膜 png 上附加一个 @2x 后缀(例如:heroimage@2x.png)——然后这些将正确显示在视网膜设备。这使 Retina 显示器能够正确计算像素与点的比率(否则它们在 Retina 上看起来会是其尺寸的两倍)。
具有相同名称但没有 @2x 后缀的文件将是非视网膜对应文件。

稍微复杂一点的答案:
如果您需要区分更多设备,iPhone 和 iPad,您可以分别为 Retina iPad 和 iPhone 使用 @2x~ipad 后缀和 @2x~iphone。但是,有错误报告here .

WWDC 的意思可能是,如果您将不同设备的图像(具有不同的后缀)放在纹理图集中,那么生成的集体图集图像对于每个设备来说确实是分开的。正如它在 iOS Developer Library 中所说的那样:

Images for the same device are kept together—for example, all iPhone images are in one file (~iphone.1.png), and all iPad images are in another file (-ipad.1.png).

关于ios - 带有 Sprite Kit 的硬件特定图集在 iPad 上被炸毁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21389481/

相关文章:

ios - BoundingRectWithSize - 选择使用的字体和字体大小

python - 在图像中绘制标记

android - 内存不足 : Recycle Images

iphone - 您如何检测 iCloud 中的文件何时更改?

iphone - UIDocumentInteractionController 的奇怪问题

ios - AWS Cognito错误密码限制

ios - 如何通过indexpath方法中的didselect row将表数据从一个 View Controller 调用到另一个 View Controller

javascript - 我可以通过 JavaScript 获取图像的文件大小和 mime 类型吗(仅限 FireFox/Gecko/Mozilla)

javascript - 文本区域值更改时双击 iPad 设备

ios - 在已经在其他地方分配/初始化之后,如何从 XIB 重新加载 View ?