关于cocos2dxc++的精灵动画中途结束问题

初始人物如图是有个站立的图片的,按键移动人物,如果是完整的移动完是正常的返回初始的站立图片
FJ2NP61LF20XF5XIHM2{GI
X46YBLVQVU}4ZZDI_$IC
image

但是碰撞怪物的时候我是想停止动作恢复到出生地

发现回到出生地的时候精灵不会回到默认的站立图片,而是停在某一个动画帧,但是游戏可以正常运行只是不能恢复到站立状态,求解

切换动画帧是用action写的吗?

是的,但是我不明白为什么完整运行玩action就不会有,中途stop就会返回第一帧

backhome里有做还原第一帧处理吗?最好能多贴一点代码 :smile:

没有,里面只是单纯的setposition,那如何设置呢,我现在目前摸到setspriteframe似乎可以解决这个问题,但是还有别的方法吗

backhome后应该要一个初始化的步骤吧,重置状态属性之类的,在这里做一个action播放站立动画,这样就没问题啦

backhome之后settexture到默认图

1赞

我主角是单实例,代码也没什么很复杂的,纯萌新,勿喷
我只提供了move的接口,接口内调用了_action创建动画【acnimate,我知道我函数命名不规范,一定改】,移动就用spawn = 动画+moveBY 结合

现在就是不知道为什么,spawn完整运行的话是可以回到站立图片,但是如果中途stopallaction的话就不会恢复到站立,而是上一个动作的第一帧状态,我认为是没有结束动作后的初始化,源码也很难找

虽然现在用setSpriteFrame可以解决,但是应该不是最优的

不行,虽然backhome后,人物确实站立了,但是只要移动了,又回不去了

已贴代码了,辛苦了

你的播放动画和移动是同一个节点和动作,停止的时候动画肯定也会停止。
你可以换个思路,根结点下挂动画子节点。这样停止移动的时候,动画子节点也不会受到影响

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。