刚刚开始学习cocos2d,想了一个小功能,将数字添加到精灵上,就好像他们两个是一体的。刚开始的时候总是想着从google或者是百度上去搜一下人家写好的例子,以前的很长时间学习中,我都是用这个方法,但是它是最没效率的方法对于一个程序员(我现在还是个菜鸟),这种方法不仅浪费了大好的时间,而且学到的东西很少,时间长了就会产生依赖感。在从网上找不到我想要实现的功能时,我近乎抓狂,好在我是一个坚持不放弃的人(自夸一下下啦),在一个偶然的机会里,我无意中看到了CCSprite的定义类,看到了里面的方法,突然发现了+(id)spriteWithTexture:(CCtexture2D*)texture rect:(CGRect)rect 这个方法。这让我看到了曙光,我又从网上查了一下这个方法,确定了她就是我一直需找的方法,texture指得是要加载的数字或者是字符串,而rect指的是 texture的大小,这篇博客中讲了CCsprite的其他的一些类方法和实例方法http://www.xuanyusong.com/archives/1370
其实大家也看到了,这个方法就在CCSprite定义的类方法中,我却在第一时间内没想到想去看看CCSprite定义的方法有哪些。栽跟头归栽跟头,不过心里还是挺高兴的,毕竟学到了学习的方法,相信你们也是深有感触吧。总归一句话,不要老依赖google或百度。
也啰嗦了这么多了,下面就看看代码片段吧
//定义精灵,并将其加载到层上
CCSprite *ballon = [CCSprite spriteWithFile:@"balloon.png"];
[self addChild:ballon];
//使用spriteWithTexture:rect:这个方法来读取在rect范围内的数字或者是字符串label2.texturerect并将图像加载到精灵中
CCSprite *sprt = [CCSprite spriteWithTexture:label2.texture rect:CGRectMake(0,0,40,35)];
//定义加载到精灵上的位置
sprt.position = CGPointMake(ballon.contentSize.width/2,ballon.contentSize.height/2+20);
//定义数字颜色
sprt.color = ccc3(125, 125, 255);
//定义数字在精灵上的对齐方式
sprt.anchorPoint = CGPointMake(0.5,0.5);
//最后一步,将数字加载到要加载的精灵上
[ballon addChild:sprt];
//然后就可以用ballon这个被设置过的精灵做你想做的事情了