gpt4 book ai didi

cocos2d-x - 为什么调用 setFlipped(true) 时动画没有水平翻转?

转载 作者:行者123 更新时间:2023-12-03 13:37:06 28 4
gpt4 key购买 nike

我有一些 Sprite ,其中玩家角色面向右侧。
我可以从这些 Sprite 创建一个动画就好了。问题是,如果我想让 Sprite 面朝左边。

我执行以下操作:

Sprite* p = Sprite::createWithSpriteFrameName("Jumping");
p->setPosition(Vec2(_visibleSize.width/2,_visibleSize.height/2));
this->addChild(p);
p->setFlippedX(true);
Vector<AnimationFrame*> animFrames;
float frameRate = 0.32f;
std::vector<std::string> frameNames = {"Running 0","Running 1","Running 2"};

for (int i =0; i<3;i++){
auto frameName = frameNames.at(i);
auto spriteFrame = SpriteFrameCache::getInstance()->getSpriteFrameByName(frameName);
ValueMap userInfo;
userInfo["frame_index"] = Value(i);
auto animFrame = AnimationFrame::create(spriteFrame, frameRate, userInfo);
animFrames.pushBack(animFrame);
}

auto animation = Animation::create(animFrames, frameRate);
auto animationAction = Animate::create(animation);
p->runAction(RepeatForever::create(animationAction));
p->setFlippedX(true);

动画运行,但动画仍然显示玩家面向右侧。 问题是什么?为什么不 setFlippedX在这种情况下工作?

我正在使用 Cocos2d-x 3.13.1。我找不到任何错误,所以我认为我做错了什么。

最佳答案

这似乎是一个错误,似乎没有办法解决,除了使用两个 Sprite 集 - 一个用于所有不翻转的 Sprite ,另一组用于 Sprite 翻转时。

更糟糕的是——这意味着如果你想翻转,你不能使用动画代码,而是需要实现你自己的逻辑,使用适当的 Sprite 、动画等。

编辑:它似乎已在 3.16 中修复

关于cocos2d-x - 为什么调用 setFlipped(true) 时动画没有水平翻转?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50464314/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com