首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >水平和垂直翻转动画精灵的单个帧

水平和垂直翻转动画精灵的单个帧
EN

Stack Overflow用户
提问于 2019-04-15 05:59:45
回答 3查看 997关注 0票数 0

我有4 (0-3动画帧)不同的图像的硬币动画与它旋转的不同状态。我想让它看起来像它的旋转添加另外2帧(4-5),使它看起来像旋转。在目前的情况下,硬币看起来像是旋转了180度,然后回到了原来的位置。我只想垂直翻转第四和第五帧。如何才能在不创建新的冗余pngs的情况下实现这一目标?

我知道在这种情况下制作2个新的pngs并不是什么大问题,但如果我有更多的框架和/或更大的精灵,这可能会在未来的项目中产生重大差异。

EN

回答 3

Stack Overflow用户

发布于 2019-04-18 14:37:49

我在想,当动画达到最后的名气时,你可以让它水平翻转,但这意味着你必须省略#4和#5,以避免重复,但它看起来仍然很奇怪,因为第3帧将直接跳回到第0帧。我试着想不同的顺序放置精灵框架来清理这个问题,但我所有的解决方案要么导致重复的框架,要么导致丑陋的跳跃。也许你能解决我解决不了的问题。

不幸的是,尽管Godot支持animation_player节点的play_backwards功能,但在animated_sprite中却没有这样的功能。太糟糕了,因为这可能会解决您的问题。

现在,我认为你最好的选择就是做你想要避免的事情..自己翻转精灵图像并将其添加为动画帧,或者制作包含翻转的精灵的单独动画,并让它们分别在最后一帧之后来回切换。对于超大型项目来说,这可能会有很多工作要做,但是如果没有某种针对动画精灵的play_backwards功能,我认为这次不值得你费力地去寻找解决办法。

当然,如果我错了,我欢迎社区的任何纠正。

祝好运。

票数 1
EN

Stack Overflow用户

发布于 2019-05-03 01:31:45

这是完成任务的一种方法。

在godot write的ready函数中

代码语言:javascript
复制
#used to store frame value
var frame = 0

在你使用的运行每一帧的函数中写道:

代码语言:javascript
复制
frame += 1

#resets the value representing the current frame
if frame > 5:
    frame = 0

if frame == 4 || frame == 5:
    #this should be whatever function you use to flip the sprite vetically
    flip_h = true 
else:
    #this should be whatever function you se to flip the sprite horizontally
    flip_h = false
票数 1
EN

Stack Overflow用户

发布于 2021-01-04 18:15:01

你可能已经知道了这一点,因为我知道这张截图来自udemy课程,因为我现在正在做这件事,这将在后面的课程中解释(当添加钉兵敌人的时候)。但是对于那些不知道的人来说,可以通过添加一个AnimationPlayer和处理AnimatedSprite的动画flip_h属性的新动画轨迹来解决它。然后你必须在最后两个重复的帧上设置flip_h。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55680402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档