加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

cocos2dx 我所不知的技巧

发布时间:2020-12-14 20:18:06 所属栏目:百科 来源:网络整理
导读:1、实现图片的平铺复制 local visibleSize = VisibleRect:getVisibleSize()local texture = cc.Director:getInstance():getTextureCache():addImage("repeat.jpg")texture:setTexParameters(gl.LINEAR,gl.LINEAR,gl.REPEAT,gl.REPEAT)local sprite = cc.Spri

1、实现图片的平铺复制

local visibleSize = VisibleRect:getVisibleSize()
local texture = cc.Director:getInstance():getTextureCache():addImage("repeat.jpg")
texture:setTexParameters(gl.LINEAR,gl.LINEAR,gl.REPEAT,gl.REPEAT)
local sprite = cc.Sprite:createWithTexture(texture,cc.rect(0,visibleSize.width,visibleSize.height))
sprite:setPosition(cc.p(visibleSize.width/2,visibleSize.height/2))

实现的效果,将如下的图片实现重复拼接,直到覆盖满整个visiblesize

这里需要注意的是,图片的宽和高都必须是2的次幂,否则会报错

CCASSERT((_pixelsWide == ccNextPOT(_pixelsWide) || texParams.wrapS == GL_CLAMP_TO_EDGE) &&
        (_pixelsHigh == ccNextPOT(_pixelsHigh) || texParams.wrapT == GL_CLAMP_TO_EDGE),"GL_CLAMP_TO_EDGE should be used in NPOT dimensions");
int ccNextPOT(int x)
{
    x = x - 1;
    x = x | (x >> 1);
    x = x | (x >> 2);
    x = x | (x >> 4);
    x = x | (x >> 8);
    x = x | (x >>16);
    return x + 1;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读