【问题标题】:How do I repeat sprite horizontally ?如何水平重复精灵?
【发布时间】:2012-08-02 18:08:39
【问题描述】:

我得到了重复 X- 和 Y- 的代码,即:

 bg = [CCSprite spriteWithFile:@"ipadbgpattern.png" rect:CGRectMake(0, 0, 3000, 3000)];
        bg.position = ccp(500,500);
        ccTexParams params = {GL_LINEAR,GL_LINEAR,GL_REPEAT,GL_REPEAT};
        [bg.texture setTexParameters:&params];
        [self addChild:bg];

但是,我不知道如何更改参数以使背景沿水平轴重复。

【问题讨论】:

    标签: iphone objective-c ipad cocos2d-iphone textures


    【解决方案1】:

    没有参数。只需确保 CGRect 跨越您希望纹理重复的区域,并且纹理本身必须是 2 的幂(即 1024x1024)。

    我猜你可能正在使用 1024x768 纹理,然后你会看到纹理重复之间的间隙。

    【讨论】:

    • 哦,是的,谢谢。我知道图像的大小(2 的幂),但我的矩形大小不合适。完美的。谢谢。
    【解决方案2】:

    这在 GL 级别无法实现,因为 GL_REPEAT 需要具有二维幂的纹理。

    查看我的 TiledSprite 类,了解一个相当未优化但实用的方法,可以任意重复任意大小的纹理或子纹理:

    https://gist.github.com/Nolithius/6694990

    这里简要介绍一下它的结果和用法:

    http://www.nolithius.com/game-development/cocos2d-iphone-repeating-sprite

    【讨论】:

      猜你喜欢
      • 2011-07-09
      • 1970-01-01
      • 2018-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-02
      • 1970-01-01
      • 2013-08-04
      相关资源
      最近更新 更多