【问题标题】:Cocos2D: How to use Mask ImageCocos2D:如何使用 Mask Image
【发布时间】:2011-08-17 12:43:16
【问题描述】:

我正在将 cocos2d 用于一个游戏,它使用精灵表来制作我的角色动画。我使用 TexturePacker 创建了这些图像。现在,由于某些原因,我想使用 PVRTC 4 格式来减少内存消耗。但正如PVRTC Texture Compression Usage Guide 建议的那样,我需要在每个字符中添加 4 个像素的额外边框以产生正确的结果。即使我添加了边框,我也必须用 alpha 图像屏蔽此图像以在运行时删除边框。我正在使用 Texture Packer 创建一个 PVRTC4 格式的精灵表,并创建了与之匹配的 alpha 遮罩图像。我已经准备好了这两张宽度和高度相同的图片。

现在我的问题是,如何在 Cocos2D 中使用 Alpha 图像遮盖我的 PVRTC 纹理?

如果提供的解决方案与批处理节点一起使用会更有帮助!

提前感谢任何解决方案!

【问题讨论】:

  • 现在我知道他们是一种名为 PVR-A8 的图像格式,可以用于这些需求之王。我已将我的 alpha 图像转换为这种格式,并且还能够在 Cocos2D 中加载此图像。但它们仍然充当两个独立的图像,并且不会相互遮盖以创建一个单一的纹理。 :(

标签: cocos2d-iphone alpha masking pvrtc


【解决方案1】:

我遇到了同样的问题,在阅读了 ray wenderlichs 关于遮罩的页面后,我制作了一个小 ccsprite 子类,它允许您使用 2 张图像进行遮罩。

CCMaskedSprite

【讨论】:

    【解决方案2】:

    为什么不让边框/填充区域完全透明?

    【讨论】:

    • 边界被他们使用的压缩技术破坏了。这就是为什么他们建议添加具有匹配颜色的边框,因此额外的边框会损坏并且纹理保持不变。这在使用指南的最后部分进行了解释(上面共享的链接)。因此,我需要用其他图像掩盖它! :(
    • 由于您使用的是 4bpp,因此压缩器应该能够为透明边框中的像素选择完全透明的设置。
    • 叹息.. 编辑周期超时。我忘了补充:请注意,PVRTC(-I) 确实为“完全透明”像素选项假定非预乘颜色,因此其有效性可能取决于您为源纹理中的完全透明像素使用的颜色。出于好奇,您是否有纹理部分透明的区域/像素?
    • 是的.. 角色动画的边框是部分透明的。这只是为了消除故障并使其感觉平滑且抗锯齿!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-18
    • 2015-01-02
    • 1970-01-01
    • 2013-11-05
    • 1970-01-01
    • 1970-01-01
    • 2018-04-25
    相关资源
    最近更新 更多