【Cocos 2 D+Lua】ClippingNode制作アニメーション

1446 ワード

今日Luaの文法を熟知して、同時にCocosの中のClippingNodeの使用を学んで、このノードは通常アニメーションを作るために使用して、例は以下の通りです:
clip.gif
スタートClippingNodeを利用して、上記のような効果を作りましょう.コードリファレンスは次のとおりです.
function init_element()
    self._layer = cc.LayerColor:create(cc.c3b(0,255,0))
    local scale = uiex.ui_fit:min_scale()
    self._layer:setScale(scale)
    self._layer:setAnchorPoint(cc.p(0,0))
    self:addChild(self._layer)

    local stencil = display.newSprite("image/login/earth_mask.png")
    local clip = cc.ClippingNode:create(stencil)
    clip:move(display.cx, display.cy)
    clip:setAlphaThreshold(0.1)

    local logo = display.newSprite("HelloWorld.png")
    logo:setAnchorPoint(0,0)
    local logoSize = logo:getContentSize()


    logo:runAction( cc.RepeatForever:create(
        cc.Sequence:create(
            cc.MoveBy:create(5, cc.p(-logoSize.width*2,0)),
            cc.CallFunc:create(
                function(  )
                    logo:setPositionX(0)
                end)
            )))

    clip:addChild(logo)
end

に続く
実はこのアニメの原理は以下の通りです.
穴が開いていることを想像し、コンテンツが絶えず移動しながらこの穴を通ると、上記のアニメーション効果が得られます.
上記のコードには2つの主要なノードがあり、1つはstencilを利用して作成したClippingNodeであり、これは穴である.logoを作成しました次に、logoに対してrunAction、すなわち、絶えず移動するコンテンツに相当する.最後に、コンテンツをサブノードとして穴に追加する必要があります.これでアニメーションが完了します.
尻尾
LuaはCocosを書くのは本当に卵が痛いです.特に私のような初心者は