COCOS2D-X 换肤
来源:互联网 发布:node.js用什么软件 编辑:程序博客网 时间:2024/05/05 02:33
一、我们直接在COCOS2D-X自带的HelloCpp的工程中添加代码即可.我们在初始化中添加如下代码:
[cpp]
CCSize szWin = CCDirector::sharedDirector()->getVisibleSize();
CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfo("knight.png","knight.plist","knight.xml");//加载骨骼动画文件
CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfo("weapon.png","weapon.plist","weapon.xml");//加载骨骼动画文件
setTouchEnabled(true);//开启触屏响应
pArmature = CCArmature::create("Knight_f/Knight");
pArmature->getAnimation()->playByIndex(0);//播放第一个动作
pArmature->setPosition(ccp(szWin.width/2-100,szWin.height/2));
pArmature->setScale(1.5f);
this->addChild(pArmature);
std::string sWeaponName[] = {"weapon_f-sword.png", "weapon_f-sword2.png", "weapon_f-sword3.png", "weapon_f-sword4.png", "weapon_f-sword5.png"};
CCSpriteDisplayData sprDisplayData;
for (int i=0;i<sizeof(sWeaponName)/sizeof(sWeaponName[0]);i++)
{
sprDisplayData.setParam(sWeaponName[i].c_str());
pArmature->getBone("weapon")->addDisplay(&sprDisplayData,i);
}
二、由于我们用到了COCOS2D-X中extensions中的类,故需要加入对应的目录和相应的头文件以及lib文件
①、在 工程->属性->配置属性->VC++目录->包含目录中添加extensions文件夹的路径:$(SolutionDir)\extensions
②、添加头文件、命名空间以及涉及的库文件如下:
[cpp]
#include "CCArmature/utils/CCArmatureDataManager.h"
#include "CCArmature/CCArmature.h"
#pragma comment(lib,"libBox2d.lib")
#pragma comment(lib,"libExtensions.lib")
using namespace extension;
三、注册触屏分配器
[cpp]
void TestUseMutiplePicture::registerWithTouchDispatcher()
{
CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this,0, true);
}
三、响应触屏事件以实现换装.代码如下:
[cpp]
bool HelloWorld::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent)
{
static int nDisplayIndex = -1;
++nDisplayIndex;
nDisplayIndex = (nDisplayIndex)%5;
pArmature->getBone("weapon")->changeDisplayByIndex(nDisplayIndex,true);
return false;
}
[cpp]
CCSize szWin = CCDirector::sharedDirector()->getVisibleSize();
CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfo("knight.png","knight.plist","knight.xml");//加载骨骼动画文件
CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfo("weapon.png","weapon.plist","weapon.xml");//加载骨骼动画文件
setTouchEnabled(true);//开启触屏响应
pArmature = CCArmature::create("Knight_f/Knight");
pArmature->getAnimation()->playByIndex(0);//播放第一个动作
pArmature->setPosition(ccp(szWin.width/2-100,szWin.height/2));
pArmature->setScale(1.5f);
this->addChild(pArmature);
std::string sWeaponName[] = {"weapon_f-sword.png", "weapon_f-sword2.png", "weapon_f-sword3.png", "weapon_f-sword4.png", "weapon_f-sword5.png"};
CCSpriteDisplayData sprDisplayData;
for (int i=0;i<sizeof(sWeaponName)/sizeof(sWeaponName[0]);i++)
{
sprDisplayData.setParam(sWeaponName[i].c_str());
pArmature->getBone("weapon")->addDisplay(&sprDisplayData,i);
}
二、由于我们用到了COCOS2D-X中extensions中的类,故需要加入对应的目录和相应的头文件以及lib文件
①、在 工程->属性->配置属性->VC++目录->包含目录中添加extensions文件夹的路径:$(SolutionDir)\extensions
②、添加头文件、命名空间以及涉及的库文件如下:
[cpp]
#include "CCArmature/utils/CCArmatureDataManager.h"
#include "CCArmature/CCArmature.h"
#pragma comment(lib,"libBox2d.lib")
#pragma comment(lib,"libExtensions.lib")
using namespace extension;
三、注册触屏分配器
[cpp]
void TestUseMutiplePicture::registerWithTouchDispatcher()
{
CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this,0, true);
}
三、响应触屏事件以实现换装.代码如下:
[cpp]
bool HelloWorld::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent)
{
static int nDisplayIndex = -1;
++nDisplayIndex;
nDisplayIndex = (nDisplayIndex)%5;
pArmature->getBone("weapon")->changeDisplayByIndex(nDisplayIndex,true);
return false;
}
0 0
- COCOS2D-X 换肤
- cocos2d-x 精灵换图片
- Cocos2d-x 3.0 cocostudio骨骼动画的动态换肤
- Spine在cocos2d-x中进行局部换肤
- Cocos2d-x 3.0 开发(八)骨骼动画的动态换肤
- Cocos2d-x 3.0 开发(八)骨骼动画的动态换肤
- Cocos2d-x 3.0 开发(八)骨骼动画的动态换肤
- Cocos2d-x 3.0 开发(八)骨骼动画的动态换肤
- cocos2d-x与Android混编实现换“头像图片”
- 【cocos2d-x 手游研发小技巧(4)与Android混编实现换“头像图片”】
- Cocos2d-x场景切换我换换换!----之游戏开发《赵云要格斗》(12)
- Cocos2d-x
- cocos2d-x
- cocos2d-x
- cocos2d-x
- cocos2d-x
- cocos2d-x
- cocos2d-x
- HDOJ 4336 Card Collector (状态压缩DP)
- 第一次来
- Soot学习笔记(2)
- 教你如何快速集成第3方
- 接口测试学习笔记
- COCOS2D-X 换肤
- web app和Native App知识
- Why Custom InfoWindow of google map v2 ,Not load url Image?
- 水晶报表-已达到系统管理员配置的最大报表处理作业数限制
- MTK 安卓支持语种
- 初志科技面试总结
- 考试系统维护中对项目管理的一点体会
- Android -- 获得当前正在运行的activity信息
- 一些基本的类介绍