【问题标题】:how to scale down Cocos2D image repeatedly如何反复缩小Cocos2D图像
【发布时间】:2011-11-22 04:25:26
【问题描述】:

我反复缩小图像(然后将其渲染为新的全尺寸图像)少量,结果是中间的条纹没有被缩小。我假设这与 cocos2d 使用的 resize 方法有关。如果我通过调整大小来增加我缩小图像的数量太快,如果我减少缩小大小,中间的条会变得更大!以下代码每秒调用 60 次。下图显示了结果!那么..关于如何摆脱酒吧的任何建议?

 [mySprite setScaleX:rtt.scaleX - .05]; 

【问题讨论】:

    标签: iphone ios image-processing cocos2d-iphone


    【解决方案1】:

    我不太清楚你的意思,但你的意思是你每秒调用这条线路 60 次?

     [mySprite setScaleX:rtt.scaleX - .05]; 
    

    如果是这样,那么你的精灵的比例将在三分之一秒内变为负数...

    【讨论】:

    • 我将缩小后的图像渲染为新的全尺寸图像,然后将下一个缩小操作应用于全尺寸图像。最终的效果是任何绘制到屏幕上的东西都被“吸”到屏幕中间。
    • 你修好了吗?有兴趣
    • 不,我没有修复它,但这只是我随机应用于图像的大约 20 个效果中的一个,所以我只是用我在cocos2d 演示程序
    • 效果很多。我喜欢它。
    【解决方案2】:

    每次操作图像时,都会丢失信息。

    更好的方法是始终从原始大小调整大小,并且每次只更改调整大小,而不是不断调整上次调整大小操作的结果。

    【讨论】:

    • 我的描述应该更清楚,我在每个循环中将缩小的图像渲染为新的全尺寸图像,下一个循环缩小新的全尺寸图像。所以我可以丢失图像数据,事实上我想随着时间的推移丢失它,因为我在它上面绘制新数据。
    【解决方案3】:

    我是 cocos2d 引擎的新手,希望对您有所帮助。如果您缩小图像,我建议使用 CCScaleBy。你可以试试这样的...

    CCScaleBy *yourSprite = [CCScaleBy actionWithDuration: .01 scaleX: .95 scaleY: 1.0f];

    这将在每次调用时将您的 sprite 缩小 5%。然后,当它达到您认为的最小像素点时,您可以将其替换为新图像。可能需要播放持续时间,但认为这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-29
      • 2013-09-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多