COCOS2D-X之骨骼动画武器换装效果Demo

来源:未知 责任编辑:责任编辑 发表时间:2013-11-17 14:34 点击:
我们这个Demo的效果就是点击屏幕实现武器的更换.人物换装应该是游戏中很常见的一个需求,故写此Demo以分享给需要的人. p>一、我们直接在COCOS2D-X自带的HelloCpp的工程中添加代码即可.我们在初始化中添加如下代码:

p>[cpp]  

p>CCSize szWin = CCDirector::sharedDirector()->getVisibleSize();  

p>CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfo("knight.png","knight.plist","knight.xml");//加载骨骼动画文件  

p>CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfo("weapon.png","weapon.plist","weapon.xml");//加载骨骼动画文件  

p>setTouchEnabled(true);//开启触屏响应  

p>pArmature = CCArmature::create("Knight_f/Knight");  

p>pArmature->getAnimation()->playByIndex(0);//播放第一个动作  

p>pArmature->setPosition(ccp(szWin.width/2-100,szWin.height/2));  

p>pArmature->setScale(1.5f);  

p>this->addChild(pArmature);  

p>std::string sWeaponName[] = {"weapon_f-sword.png", "weapon_f-sword2.png", "weapon_f-sword3.png", "weapon_f-sword4.png", "weapon_f-sword5.png"};  

p>CCSpriteDisplayData sprDisplayData;  

p>for (int i=0;i<sizeof(sWeaponName)/sizeof(sWeaponName[0]);i++)  

p>{  

p> sprDisplayData.setParam(sWeaponName[i].c_str());  

p> pArmature->getBone("weapon")->addDisplay(&sprDisplayData,i);  

p>}  

p>二、由于我们用到了COCOS2D-X中extensions中的类,故需要加入对应的目录和相应的头文件以及lib文件

p>        ①、在 工程->属性->配置属性->VC++目录->包含目录中添加extensions文件夹的路径:$(SolutionDir)\extensions

p>        ②、添加头文件、命名空间以及涉及的库文件如下:

p>[cpp]  

p>#include "CCArmature/utils/CCArmatureDataManager.h"  

p>#include "CCArmature/CCArmature.h"  

p>#pragma  comment(lib,"libBox2d.lib")  

p>#pragma  comment(lib,"libExtensions.lib")  

p>using namespace extension;  

p>三、注册触屏分配器

p>[cpp] 

p>void TestUseMutiplePicture::registerWithTouchDispatcher()  

p>{  

p> CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this,0, true);  

p>}  

p>三、响应触屏事件以实现换装.代码如下:

p>[cpp] 

p>bool HelloWorld::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent)  

p>{  

p> static int nDisplayIndex  = -1;  

p> ++nDisplayIndex;  

p> nDisplayIndex = (nDisplayIndex)%5;  

p> pArmature->getBone("weapon")->changeDisplayByIndex(nDisplayIndex,true);  

p> return false;  

p>}  

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • cocos2d-x学习笔记(19)--label 、label atlas
    • cocos2d-x学习笔记(23)--地图的使用3--CCTMXLayer
    • Cocos2d-x学习(一):HelloWorld
    • cocos2dx在xcode下开发,编译到android上(2)
    • cocos2d 设置屏幕默认方向
    • Cocos2d-x 2.0 之 Actions “三板斧” 之一
    • cocos2d-x学习笔记(22)--地图的使用2(TMX) --Z-Order、AnchorPoi
    • cocos2d-x学习笔记(18)--游戏打包(windows平台)
    • cocos2d-x学习笔记(16)--spritesheet(精灵表单)
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1