cocos lua學習筆記 九 動作

2021-08-11 02:36:18 字數 4710 閱讀 3532

下面是所有動作相關的介面,摘自《cocos2d-lua基礎》

1.place:節點放置到某一位置

2.flipx與flipy:只能用於精靈,沿x或y軸反轉

3.show與hide 顯示和隱藏節點

4.callfunc 動作結束的,啟動的邏輯

1.moveto 與 moveby

2.jumto 與jumpby

3.bezierto 與bezierby

4.scaleto與scaleby

5.rotateto與rotateby

6.fadein、fadeout和fadeto

7.tintto 與tintby

8.blink

9.animation

1.delaytime

2.repeat與repeatforever

3.spawn

4.sequence

5.follow

1.speed

2.actionbase ->這裡有很多圖

node:runaction()

node:stopaction()

node:stopallactions

node:stopaction(action)

node:stopactionbytag(tag)

node:settag(tag)

action:settag(tag)

node:getactionbytag(tag)

action:stopactionbytag(tag)

具體的介面怎麼使用,直接上乙個demo展示

local mainscene = class("mainscene", function()

return display.newscene("mainscene")

end)

function mainscene:ctor()

self.backgroundlayer = display.newcolorlayer(cc.c4f(128,128,128,255))

self.backgroundlayer:addto(self)

-- preload frames to cache

display.addspriteframes("grossini-aliases.plist", "grossini-aliases.png")

-- run actions: 1 to 9

self:run(1)

endfunction mainscene:run(actionnum)

self["action" .. actionnum](self)

end--[[

follow

]]function mainscene:action1()

-- 用在層跟隨精靈中,固定攝像機到精靈身上

local sprite1 = display.newsprite("1.png")

sprite1:center()

local move_left = cc.moveby:create(1.5, cc.p(display.width / 2, 0))

local move_right = cc.moveby:create(3, cc.p(- display.width, 0))

local seq = cc.sequence:create(move_left, move_right, move_left)

local rep = cc.repeatforever:create(seq)

sprite1:runaction(rep)

sprite1:addto(self.backgroundlayer)

self.backgroundlayer:runaction(cc.follow:create(sprite1))

end--[[

moveby

]]function mainscene:action2()

local sprite2 = display.newsprite("2.png")

:center()

:addto(self.backgroundlayer)

-- true 翻轉,false 重置為最初的狀態

local flipxaction = cc.flipx:create(true)

local moveto = cc.moveby:create(1, cc.p(-300, 0))

local action = cc.sequence:create(moveto, flipxaction, moveto:reverse())

sprite2:runaction(action)

end--[[

hide

]]function mainscene:action3()

local hideaction = cc.hide:create()

local moveto = cc.moveto:create(1.5, cc.p(60, 60))

local action = cc.sequence:create(moveto, hideaction)

local sprite1 = display.newsprite("1.png")

:center()

:addto(self.backgroundlayer)

:runaction(action)

end--[[

callfunc

]]function mainscene:action4()

-- 判斷順序動畫執行結束

local callback = cc.callfunc:create(function() print("in callback function") end)

local moveto = cc.moveto:create(2, cc.p(0, 0))

local action = cc.sequence:create(moveto, callback)

local sprite1 = display.newsprite("1.png")

:center()

:addto(self.backgroundlayer)

:runaction(action)

end--[[

貝塞爾曲線

]]function mainscene:action5()

local action = cc.bezierto:create(2, )

local sprite1 = display.newsprite("1.png")

:pos(0, 0)

:addto(self.backgroundlayer)

:runaction(action)

end--[[

fadeto

]]function mainscene:action6()

local action = cc.fadeto:create(2, 0)

local sprite1 = display.newsprite("1.png")

:center()

:addto(self.backgroundlayer)

:runaction(action)

end--[[

幀動畫]]

function mainscene:action7()

local frames = display.newframes("grossini_dance_%02d.png", 1, 14)

local animation = display.newanimation(frames, 0.2)

local animate = cc.animate:create(animation)

local sprite1 = display.newsprite("#grossini_dance_01.png")

:center()

:addto(self.backgroundlayer)

:runaction(animate)

end--[[

延遲動作

]]function mainscene:action8()

local move = cc.moveby:create(1, cc.vertex2f(150,0))

local action = cc.sequence:create(move, cc.delaytime:create(2), move:reverse())

local sprite1 = display.newsprite("1.png")

:center()

:addto(self.backgroundlayer)

:runaction(action)

end--[[

變速動作

]]function mainscene:action9()

local action = cc.easesineout:create(cc.moveby:create(2, cc.p(300, 0)))

local sprite1 = display.newsprite("1.png")

:center()

:addto(self.backgroundlayer)

:runaction(action)

endfunction mainscene:onenter()

endfunction mainscene:onexit()

endreturn mainscene

學習筆記(九)

字元處理只針對c n d t string型別,不做型別轉換,都按照c型別處理,也可以處理這些型別構成的結構體,有專門的字串比較 定位操作 concatenate first name last name into first name separated by separate.write fir...

Cocos2d x動作學習筆記

action類如其名,它可以改變node物件的屬性,action物件是隨著時間改變node的屬性。任何乙個以node為基類的物件都有可執行的動作物件。例如,你可以在乙個時間段內將sprite精靈從乙個位置移動到另乙個位置。每個動作都有by和to兩個狀態。為什麼呢?因為它們所執行的結果是不同的。by相...

C 學習筆記 九

第9講事件1 現在來講一下事件。我們知道windows作業系統是乙個基於事件的作業系統。掌握事件的機制對gui程式設計能有著非常重要的意義。事件是類在發生其關注的事情時來提供通知的一種方式。例如,封裝使用者介面控制項的類可以定義乙個在使用者單擊該控制項時發生的事件。控制項類不關心單擊按鈕時發生了什麼...