本文源自:http://my.oschina.net/ffs/blog/167985
在网上看了一些例子,可能是版本的问题运行时出错,折腾了一下修改一部份代码,发上来做个记录以便日后做参考:
collectgarbage("setpause", 100)
collectgarbage("setstepmul", 5000)
local frameWidth = 105
local frameHeight = 95
加载到缓存中
CTexture2D *pTexture = CCTextureCache::sharedTextureCache()->addImage(szFilename);
local textureDog = CCTextureCache:sharedTextureCache():addImage("dog.png")
显示区域
CCRectMake(0, 0, frameWidth, frameHeight)
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)