I want to create a “gradual colour change” effect in Godot.
eg: some_set_font_color_func(Color8(255,n,n)
where n gradually decreases to make the text fade from white to red.
I can’t figure out what function I would use in place of some_set_font_color_func
to change a font’s colour.
Godot themes are somewhat confusing. Given some var var UI:control
how would I set the colour of any font(s) contained within that node?
Tried copying this post into chatGPT:
extends Control var label: Label var color_change_speed: float = 1.0 var current_color: Color = Color(1, 1, 1, 1) # Initial color (white) func _ready(): label = $Label # Assuming your Label node is named "Label" label.modulate = current_color # Call a function to start the gradual color change start_color_change() func start_color_change(): # Schedule a function to be called every frame # The function `_process(delta)` will be called continuously set_process(true) func _process(delta): # Gradually decrease the red component of the color current_color.r -= color_change_speed * delta # Set the modified color to the label label.modulate = current_color # Check if the red component has reached a certain threshold (e.g., 0) if current_color.r <= 0: # Stop the color change set_process(false)
Helpful or counterproductive? I’ll give it a try later.
Update:
modulate
seems to be a Godot 4 function, so this won’t work for me.