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>}
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>