【问题标题】:Zooming in on pixel art in Cocos2D causes blur- iPhone在 Cocos2D 中放大像素艺术会导致模糊 - iPhone
【发布时间】:2012-07-01 20:29:12
【问题描述】:

当我使用 16x16 图像的 CCSprite 放大时,会出现很多模糊。

此图像是像素艺术,因此应被像素化,但不会模糊。

我已经尝试在精灵的纹理上运行setAntiAliasTexParameters 方法,但它并没有改变任何东西。

代码如下:(mainSprite 是 CCSprite,slide1 是 CCTexture2D)

slide1 = [[CCTexture2D alloc] initWithImage:[UIImage imageNamed:@"slide1.png"]];
[slide1 setAntiAliasTexParameters];

[mainSprite setTexture:slide1];

谢谢,感谢您的帮助!

【问题讨论】:

    标签: iphone cocos2d-iphone scale blur ccsprite


    【解决方案1】:

    一般来说,最好使用更高分辨率的图像并按比例缩小。例如,如果您要使用一个图像,当它与它一样大时,它将是 32x32。然后使用 32x32 图像,当您需要 16x16 分辨率时,将其缩小到该分辨率。

    【讨论】:

      【解决方案2】:

      你应该改用这个:

      [slide1 setAliasTexParameters];
      

      这将告诉您的精灵不要抗锯齿,保留像素化外观

      (使用 cocos2d v2.0 -- 不确定这是否适用于以前的版本)

      【讨论】:

        【解决方案3】:

        您的图片太小,无法放大。就这么简单。如果您不想模糊,请制作更大的图像并使用它。

        建议您在执行某项操作时使用 1:1 比例的图像(除非它是可缩放的图像,例如单色..或 2 种颜色,或一条线,或类似的东西)。如果您有一个图标并且想要放大它..忘记它..只需制作一个更大的图标并在必要时缩小。

        【讨论】:

        • 图片是简单的像素艺术,但放大后不是单个像素,而是一起模糊
        • 那么您的问题是 ccBlendFunc 。尝试执行以下操作:[yoursprite setBlendFunc: (ccBlendFunc){GL_ONE,GL_ZERO}]
        • 谢谢你的建议,不过好像没什么区别。
        • 好吧,我对 open gl blend 函数和/或它们的工作原理一无所知,但那你的问题...调查一下
        猜你喜欢
        • 1970-01-01
        • 2016-09-19
        • 2017-09-05
        • 2016-10-29
        • 2015-01-19
        • 1970-01-01
        • 2012-12-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多