CCSprite 贴图

CCSprite是最常用到的类。它使用图片把精灵(sprite)显示在屏幕上。生成精灵最简单的方法是把图片文件加载进CCTexture2D材质里面,然后将它赋给精灵。你必须把需要用到的图片文件放进Xcode的Resources组中,否则你的应用

17

程序将无法找到指定的图片文件:
CCSprite* sprite = [CCSprite spriteWithFile:@”Default.png”];[self addChild:sprite];

我想问你个问题:你认为这个精灵会被系统放置在屏幕的哪个地方?可能和你想的相反,精灵贴图的中心点和精灵的左下角位置是一致的。生成的精灵被放置在(0,0)点,也就是屏幕的左下角。因为精灵贴图的中心点和精灵的左下角位置一致,导致贴图只能显示一部份(也就是贴图的右边上半部份)。比如,假设图片大小是80x30px,你必须将精灵移动到坐标(40,15)才能将精灵贴图与屏幕的左下角完美对齐,从而看到完整的贴图。

乍看上去这样安排位置很不寻常,不过将贴图的中心点和精灵的左下角位置设
为一致有很大的好处。一旦你开始使用精灵的旋转或缩放属性,精灵的中心点
将会保持在它的位置上。

警告:iOS设备上的文件名是区分大小写的!在模拟器上测试时并不区分大小写。

但是在iOS设备上实际测试时,程序就会因为大小写错误而崩溃。

这个要求导致了很多让开发者头痛的问题,这也是另一个为什么要经常在设备
上做实际测试的原因。为自己确立一个文件命名规则,并且坚持用下去。对我
自己而言,我全部使用小写,词和词之间则用下划线分开。

定位点揭秘每个节点都有一个定位点,但是只有当此节点拥有贴图时,这个定位点才有用。默认情况下,anchorPoint属性设置为(0.5,0.5)或者贴图尺寸的一半。它是一个抽象的因素,一个乘数,而不是一个特定的像素尺寸。

和你想的恰恰相反,定位点和节点的位置没有关系。虽然当你改变anchorPoint属性的时候,你看到精灵在屏幕上的位置发生了变化。但那是错觉,因为节点的位置并没有改变;改变的是精灵里贴图的位置!

anchorPoint定义的是贴图相对于节点位置的偏移。你可以通过把贴图的宽和高乘以定位点来得到贴图的偏移值。顺便提一下,有一个只读的anchorPointPixels属性可以得到贴图的像素偏移值,所以你不需要自己计算。

如果设置anchorPoint为(0,0)的话,你实际上是把贴图的左下角同节点的位置对齐了。以下代码会把精灵图片完美地同屏幕左下角对齐:

CCSprite* sprite = [CCSprite spriteWithFile:@”Default.png”];sprite.anchorPoint = CGPointMake(0, 0);
[self addChild:sprite];

注:如果你在使用别的游戏引擎时,习惯了把所有精灵定位点都设为0,0的话,

请不要在cocos2d里面这样做。这样做会引起很多麻烦,包括旋转和缩放,父节点和子节点之间的相对位置,还有距离测试和碰撞测试。你要保证anchorPoint

在贴图的中央。   
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值