美文网首页Cocos2d-X与游戏开发cocos2d-xcocos2d
Cocos2d ClippingNode(遮罩效果、跑马灯)

Cocos2d ClippingNode(遮罩效果、跑马灯)

作者: 90d81be3ec65 | 来源:发表于2018-02-27 15:41 被阅读51次

一、先上代码:

function M:clip()
    local w, h = V.Width, V.Height
    -- 底板
    local clip = cc.ClippingNode:create()
    clip:setContentSize(w, h)
    
    local bg = cc.Sprite:create("res/updater/loading.jpg")
    bg:setPosition(w / 2, h / 2)
    clip:addChild(bg)

    -- 模板
    local stencil = cc.Sprite:createWithSpriteFrameName("world_grid_owner_10")
    stencil:setPosition(w / 2, h / 2)
    clip:setStencil(stencil)
    --[[
        false stencil的形状(默认)
        true 未被裁剪下来的内容
    ]]
    clip:setInverted(true)

    self:addChild(clip)
end



二、原理
以模板的形状来裁剪底板,模板本身不绘制;
原始裁剪图片:

grid.png 裁剪后效果: image.png



三、应用
游戏中可以利用ClippingNode实现跑马灯效果,简单描述下思路。跑马灯背景添加到底板上,再同样以跑马灯背景作为模板来裁剪底板,那么当背景上的label滚动到背景外面时候就会不可见。

相关文章

网友评论

    本文标题:Cocos2d ClippingNode(遮罩效果、跑马灯)

    本文链接:https://www.haomeiwen.com/subject/yycmxftx.html