COCOS2D-X 2.0笔记---2:精灵类,动画类,精灵缓存,shcedule,touch事件
今天首先是:CCSpriteFrameCache类,本类是用于缓存资源,减少每次显示对象从新加载资源带来的性能损失(减少drawcall次数)。它可以直接使用addSpriteFramesWithFile函数将COCO2D支持的*.plist文件将一个贴图集(Texture Atlas)加载,然后使用spriteFrameByName函数直接提取贴图集中的图片元素。*.plist文件可以使用TexturePacker进行制作。
精灵类为CCSprite,有几种构造方式
CCSprite::create("filename"):直接从Resource资源文件夹中读取资源。
CCSprite::createWithSpriteFrameName("filename"):从CCSpriteFrameCache中获取对象。别的资料说得很清楚了,关于CCSpriteFrameCache主要是为了减少drawcall次数,提升性能。
CCNode中定义了schedule函数
void schedule(SEL_SCHEDULE selector, float interval, unsigned int repeat, float delay);
如果repeat参数为0,即为每帧调用。当不需要schedule之后记得使用unschedule方法释放。
想触发touch事件,首先必须继承CCTouchDelegate,COCOS2D提供了
virtual bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent);
virtual void ccTouchEnded( CCTouch *pTouch, CCEvent *pEvent );
virtual void ccTouchMoved( CCTouch *pTouch, CCEvent *pEvent );
这三个函数来对移动设备的触摸事件提供支持,需要注意的是,ccTouchBegan返回一个bool值,来告诉底层当前捕获事件的对象是否是程序员希望处理的目标,如果返回true,触摸事件将会被捕获且不会再继续分发。如果返回false,事件将继续分发,并且不会触发本对象的ccTouchEnded和ccTouchMoved事件。
浙公网安备 33010602011771号