大佬教程收集整理的这篇文章主要介绍了cocos2d-x 3.3 Sprite3D人物换装代码解析,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
Sprite3D与Sprite相似,只不过它是3D的。你可以使用内置的create函数初始化一个Sprite3D对象。
auto sprite = Sprite3D::create(fileName); sprite->setScale(4); sprite->setRotation3D(Vec3(0,0));
目前 Sprite3D 支持以下三种格式
std::string fileName = "Sprite3DTest/ReskinGirl.c3b"; auto sprite = Sprite3D::create(fileName); sprite->setScale(4); sprite->setRotation3D(Vec3(0,0)); addChild(sprite); sprite->setPosition( Vec2( p.x,p.y-60) ); auto animation = Animation3D::create(fileName); if (animation) { auto animate = Animate3D::create(animation); sprite->runAction(RepeatForever::create(animate)); }下面着重看一下3.3中所带例子的换装效果实现
首先是界面的初始化,构造函数里的字体按钮就跳过不说了,相信大家看懂都无压力
void Sprite3DReskinTest::addNewSpriteWithCoords(Vec2 p) { //ReskinGirl.c3b里保存了女郎所执行动画的所有零件(姑且这么叫吧)包括衣服,鞋子等等 std::string fileName = "Sprite3DTest/ReskinGirl.c3b"; auto sprite = Sprite3D::create(fileName); sprite->setScale(4); sprite->setRotation3D(Vec3(0,p.y-60) ); auto animation = Animation3D::create(fileName); if (animation) { auto animate = Animate3D::create(animation); sprite->runAction(RepeatForever::create(animate)); } _sprite = sprite; _curSkin[SkinType::UPPER_BODY] = "Girl_UpperBody01"; _curSkin[SkinType::PANTS] = "Girl_LowerBody01"; _curSkin[SkinType::SHOES] = "Girl_Shoes01"; _curSkin[SkinType::HAIR] = "Girl_Hair01"; _curSkin[SkinType::FACE] = "Girl_Face01"; _curSkin[SkinType::HAND] = "Girl_Hand01"; _curSkin[SkinType::GLASSES] = ""; //利用curSkin经过遍历来设置女郎的默认服装 applyCurSkin(); }
void Sprite3DReskinTest::applyCurSkin() { //函数getMeshCount获取动画所有零件数目 for (ssize_t i = 0; i < _sprite->getMeshCount(); i++) { auto mesh = _sprite->getMeshByIndex(static_cast<int>(i)); bool isVisible = false; for (auto& it : _curSkin) { if (mesh->getName() == it.second) { isVisible = true; break; } } //通过索引来获取零件并设置可见性 _sprite->getMeshByIndex(static_cast<int>(i))->setVisible(isVisible); } }
void Sprite3DReskinTest::menuCallback_switchHair(Ref* sender) { std::string str = _curSkin[SkinType::HAIR]; if (str == "Girl_Hair01") _curSkin[SkinType::HAIR] = "Girl_Hair02"; else _curSkin[SkinType::HAIR] = "Girl_Hair01"; applyCurSkin(); }最后通过点击回调换掉头发图片并调用applyCurSkin函数来实现换装
以上是大佬教程为你收集整理的cocos2d-x 3.3 Sprite3D人物换装代码解析全部内容,希望文章能够帮你解决cocos2d-x 3.3 Sprite3D人物换装代码解析所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。