iphone - 当 HxW 长度不是 2 的幂时,如何在 cocos2d 中重复背景?

标签 iphone ios cocos2d-iphone

在尝试创建重复的图 block 叠加时,我发现了很多问题(例如 this one ) 提到 Cocos2d 中重复图像的高度和宽度尺寸必须是 2 的幂。

这提出了两个问题。首先,为什么这是一个限制?其次,更重要的是,如何创建尺寸不是 2 的幂的重复滚动图像?如果我有一个非常宽的背景(比如 4000 像素)并且我希望它在 X 轴上重复,该怎么办?在这种情况下我应该做什么?我不敢相信“正确”的答案是在宽度上添加额外的 96 像素,并将图像的高度增加到 4096。那是浪费的字节!

最佳答案

这个答案提供了关于为什么需要 2 次纹理的精彩信息。

Why do images for textures on the iPhone need to have power-of-two dimensions?

关于你的第二个问题,纹理不必是正方形,只是宽度和高度都必须是 2 的幂。所以你可以有一个 4096x128 的图像重复作为背景。还要记住,纹理无论大小如何,总是以未压缩的 2 倍大小的幂存储在内存中。因此宽度为 4000 的图像和宽度为 4096 的图像实际上使用相同的内存量。

关于iphone - 当 HxW 长度不是 2 的幂时,如何在 cocos2d 中重复背景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12753643/

相关文章:

ios - 无法使用带有 : (Any), 选项的类型参数列表调用 jsonObject:[任何]

ios - 在 iOS 7.1 中如何影响通过辅助功能设置启用的按钮形状的外观?

iphone - CCLayerColor 没有按预期工作

cocos2d-iphone - cocos2D iphone v3.3 setBlendFunc 已弃用

iphone - 使用 dropbox api 下载文件夹时出现问题

iphone - MKMapView:使用当前缩放级别关注当前位置

iphone - 尝试在 XCode 4.1 中重构重命名时出错

ios - 当我点击 UISearchBar 时,它会转到 View 的顶部

ios - func tableView(_ tableView : UITableView, canEditRowAt indexPath: IndexPath) 几乎符合可选要求

c++ - 在接触监听器类中创建焊缝的问题