(摘) Godot富文本节点显示动画

声明:内容源自网络,版权归原作者所有。若有侵权请在网页聊天中联系我

Github

动画可以在RichTextLable节点,甚至print_rich输出到调试窗中。它是将若干张动图png连在一起播放,达到动画效果。

  1. 添加普通节点,挂接以下代码。用于生成动画资源文件,例如funny_cat.tres。
    设置图片目录,设置帧间隔,保存输出的动画资源。(生成资源文件后,可以删除此节点。)
@tool
extends Node

#这个脚本允许您生成一个动画纹理资源
#从选定文件夹中的所有图像中提取。

#将此脚本放在一个节点上,在检查器中设置属性,然后点击生成
#然后,您可以查看并保存来自检查器的输出

#你可以使用像ezgif.com这样的网站从gif中提取所有的帧

@export_dir var images_directory
@export var frame_duration_sec = .1

@export var generate: bool = false:
	set = _set_generate_button

@export var output: AnimatedTexture

func _set_generate_button(_new_value: bool):
	generate = false
	
	var new_animated_texture = AnimatedTexture.new()
	var dir = DirAccess.open(images_directory)
	var file_counter = 0

	for file in dir.get_files():
		if file.ends_with(".png"):
			var image_texture : CompressedTexture2D = load(images_directory + "/" + file)
			if image_texture != null:
				new_animated_texture.set_frame_texture(file_counter, image_texture)
				new_animated_texture.set_frame_duration(file_counter, frame_duration_sec)
				file_counter += 1
	
	new_animated_texture.frames = file_counter
	output = new_animated_texture
  1. 在RichTextLabel节点,或print_rich输出:print_rich("[img=160x160]res://Images/funny_cat.tres")

相关文章