Lua之Sprite使用


sprite 操作 CCSprite是一副2D圖像,CCSprite可以通過圖像或者圖像中的一個矩形子區域創建 

1.通過紋理來創建
local texture1 = CCTextureCache:sharedTextureCache():addImage("dog.png")  
local spriteTest = CCSprite:createWithTexture(texture1, CCRectMake(0, 0, frameWidth, frameHeight)) 
2.通過路徑創建
local spriteTest = CCSprite:create("dog.png")
local spriteTest = CCSprite:create("dog.png",CCRectMake(0, 0, frameWidth, frameHeight))
3.幀創建
local texture1 = CCTextureCache:sharedTextureCache():addImage("dog.png")
local frame1 = CCSpriteFrame:createWithTexture(texture1, CCRectMake(0, 0, frameWidth, frameHeight))
local spriteTest = CCSprite:createWithSpriteFrame(frame1)

4.載入貼圖集   
cache = CCSpriteFrameCache:sharedSpriteFrameCache()
cache:addSpriteFramesWithFile("Info.plist")
--生成Sprite  
local spriteTest = CCSprite:createWithSpriteFrameName("1.png")
--需要更換圖片時 
local frame2 = cache:spriteFrameByName("2.png")
spriteTest:setDisplayFrame(frame2)

5.創建動畫 如跑步動作
local textureDog = CCTextureCache:sharedTextureCache():addImage("dog.png")
-- 創建幀並加入數組
local frame0 = CCSpriteFrame:createWithTexture(textureDog, CCRectMake(0, 0, frameWidth, frameHeight))
local frame1 = CCSpriteFrame:createWithTexture(textureDog, CCRectMake(frameWidth, 0, frameWidth, frameHeight))
local animFrames = CCArray:create()
animFrames:addObject(frame0)
animFrames:addObject(frame1)
-- 加入動畫數據 0.5秒
local animation = CCAnimation:createWithSpriteFrames(animFrames, 0.5)
-- 創建動畫動作
local animate = CCAnimate:create(animation)
-- 釋放圖片數組
animFrames:release()
-- 播放動畫
local spriteDog = CCSprite:create()
-- 重複播放
spriteDog:runAction(CCRepeatForever:create(animate))
-- 有次數播放 10次
spriteDog:runAction(CCRepeat:create(animate, 10))  
-- 暫停動畫
spriteDog.isPaused = true

sprite加載完了就改各類應用了。
1,錨點
錨點就是所有扭轉,移動,縮放的參考點。cocos2-x中默認的錨點是中間點。
錨點用比例來默示侷限爲0-1,(0,0)點代表左下點,(1,1)代表右上點。設置的函數爲setAnchorPoint(ccp(0.5, 0.5));
2,扭轉
setRotation(angle) 此中angle爲角度不是弧度。正數爲順時針扭轉,負數爲逆時針扭轉。
3,地位
setPosition(ccp(xPos, yPos)) xPos和yPos爲相對於父節點錨點的地位。
4,縮放
setScale(s);// 整體縮放
setScaleX(s); // 原圖片座標X軸縮放
setScaleY(s); // 原圖片座標Y軸縮放
s爲比例,s = 1默示原尺寸。
5,傾斜
setSkewX(s); // 原圖片座標X軸傾斜
setSkewY(s); // 原圖片座標Y軸傾斜
X軸向右爲正,Y軸向上爲正。
6,透明度
setOpacity(s);
s侷限0-255,0完全透明,255完全不透明。
7,可見
setIsVisible(bVisible)
bVisible爲bool值true代表可見false代表不成見
最後,初始化完成後,不要忘了應用addChild參加到父節點,不然是不會顯示的

spriteTest:setPosition(200,100)
-- 層
local layerFarm = CCLayer:create()
layerFarm:addChild(spriteTest)
-- 場景
local sceneGame = CCScene:create()
sceneGame:addChild(layerFarm)
-- 場景切換

CCDirector:sharedDirector():runWithScene(sceneGame)



轉載自---https://my.oschina.net/ffs/blog/167985

發佈了37 篇原創文章 · 獲贊 47 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章