quick-x lua sprite使用

本文源自: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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值