Cocos2d-x爲了降低開發難度,對於動畫的實現採用的幀動畫的方案。這也就是說Cocos2d-x中的動畫是幀動畫。
幀動畫的原理相信大家都不陌生,就是多張圖片循環播放以實現動畫的效果。
一個簡單的動畫動畫實現如下:
player = cc.Sprite:create("image/player.png")
player:setPosition(-width/4,0)
local animation = cc.Animation:create()
animation:addSpriteFrameWithFile("image/player.png")
animation:addSpriteFrameWithFile("image/player_2.png")
animation:addSpriteFrameWithFile("image/player_3.png")
animation:setDelayPerUnit(0.1)
animation:setLoops(-1)
local action = cc.Animate:create(animation)
player:runAction(action)
這是一段lua代碼,從代碼中不難看出,這裏面動畫的每一幀都是一張圖片,在實際的操作中這樣的操作方式會帶來較多的性能損耗,因此我們一般會將所有的圖片通過plist組織起來,組成一張大的圖片,這樣每一個動畫幀都通過plist中記錄的座標範圍信息從這張大的圖片中獲得自己需要的那一部分紋理,這樣來提高動畫的性能。