今天熟悉了Lua的語法砍艾,同時學(xué)習(xí)了Cocos中
ClippingNode
的使用,這個節(jié)點(diǎn)通常是用來做動畫的巍举,示例如下:
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
接著
其實(shí)這個動畫的原理如下:
想象有一個洞,然后有一塊內(nèi)容不斷的移動同時經(jīng)過這個洞懊悯,這樣也就有了上述的動畫效果蜓谋。
上述代碼中有兩個主要的Node,一個是我們利用stencil
創(chuàng)建的ClippingNode
,這個就是一個洞炭分;然后我們創(chuàng)建了logo
,這就是內(nèi)容了孤澎;下面對logo
進(jìn)行runAction
,也就是相當(dāng)于不斷的移動內(nèi)容;最后需要將內(nèi)容作為子節(jié)點(diǎn)加入到洞中欠窒,這樣動畫就完成了覆旭。
尾巴
Lua寫Cocos真心蛋疼,尤其是我這樣的初學(xué)者??