cocos2dx-3.0角色动画
发布时间:2020-12-14 18:59:27 所属栏目:百科 来源:网络整理
导读://将plist加载进精灵帧缓存,提及了plist的优点(@@@-1-@@@)SpriteFrameCache::sharedSpriteFrameCache()-addSpriteFramesWithFile("role.plist");//读取图片,存到精灵帧容器中VectorSpriteFrame* attackVector;for (int index=1;index!=9;++index){//CCLO
//将plist加载进精灵帧缓存,提及了plist的优点(@@@-1-@@@) SpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("role.plist"); //读取图片,存到精灵帧容器中 Vector<SpriteFrame*> attackVector; for (int index=1;index!=9;++index) { //CCLOG向控制台输出信息,便于调试 CCLOG(String::createWithFormat("%s%d.png","Img_Zhici",index)->getCString()); attackVector.pushBack( SpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(String::createWithFormat("%s%d.png",index)->getCString()) );//这里是关键的地方,和添加图片到精灵帧不同:SpriteFrame::create } Animation *animation1=Animation::createWithSpriteFrames(attackVector,0.1f); Animate *attack1=Animate::create(animation1); //创建攻击类型1 精灵 Sprite * sp=Sprite::create(); sp->setPosition(ccp(visibleSize.width/4,visibleSize.height/3)); this->addChild(sp); //执行动作 forerver sp->runAction(RepeatForever::create(attack1)); //释放plist SpriteFrameCache::sharedSpriteFrameCache()->removeSpriteFramesFromFile("role.plist"); @@@-1-@@@ TexturePacker制作plist,使用plist的好处: (1)提高载入速度 拼成大图,一次载入,减少I/O,提高速度 (2)减少内存 OpenGL ES纹理的宽和高都需要2次幂数,在载入内存后, 使用TexturePacker打包后它其实会被变成512x512的纹理,进而减少内存的使用 (3)加快渲染速度 OpenGLES渲染图片是需要使用glDrawArray,一张纹理调用一次,打包后,减少了glDrawArray的使用 详见:http://www.52php.cn/article/p-uhujfzry-bky.html
留下问题: this->schedule(schedule_selector:这个到底是什么? 是否Enemy相对于Hero,可以将其行为(特指动画)封装在一个函数中,供布景主例程调用(需要判断与Hero的关系来运作,特指人工智能部分;但似乎可以封装在Enemy中),作为感性认识上的场景一部分? 注:表达不清←。←
效果如图 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容