You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将LibGDX中Animation<TextureRegion>的内容迁移至另一个Animation?

如何将LibGDX Animation的内容迁移至另一个Animation

嘿,这事儿其实挺简单的!在LibGDX里,要把animation1的内容完整迁移到animation2,完全不用重复你之前做的纹理拆分操作,直接复用animation1已有的核心参数就行。下面给你两种靠谱的实现方式:

方式一:直接复制核心属性(推荐)

Animation的核心就是帧列表、每帧持续时间,另外别忘了复制播放模式(比如循环、单次播放),这样能完整复刻原动画的行为:

// 从animation1提取关键参数
float frameDuration = animation1.getFrameDuration();
Array<TextureRegion> keyFrames = animation1.getKeyFrames();
Animation.PlayMode playMode = animation1.getPlayMode();

// 用这些参数初始化animation2,完成迁移
animation2 = new Animation<>(frameDuration, keyFrames);
animation2.setPlayMode(playMode);

方式二:复制独立的帧数组(避免引用共享)

如果你担心后续修改其中一个动画的帧会影响另一个,可以复制一份帧数组(而不是直接复用引用),这样两个动画的帧列表是完全独立的:

// 复制帧数组,创建独立副本
Array<TextureRegion> copiedFrames = new Array<>(animation1.getKeyFrames());

// 初始化animation2
animation2 = new Animation<>(animation1.getFrameDuration(), copiedFrames);
animation2.setPlayMode(animation1.getPlayMode());

针对你现有代码的补充

结合你给出的初始化代码,假设你已经创建了animation1,现在要把它的内容转到animation2,直接用上面的代码就行——完全不用再跑一遍TextureRegion.split和循环赋值的流程,既省代码又高效。

内容的提问来源于stack exchange,提问作者Ian Gallegos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:35:58