Godot Version
4.2.1
Question
I took the following code for a textbox from a tutorial and I’m getting an error. I don’t have much knowledge about tweens yet.
Can someone help me?
Error: started with no tweeners
extends CanvasLayer
const CHAR_READ_RATE = 0.05
@onready var textbox_container = $TextboxContainer
@onready var start_symbol = $TextboxContainer/MarginContainer/HBoxContainer/Start
@onready var end_symbol = $TextboxContainer/MarginContainer/HBoxContainer/End
@onready var label = $TextboxContainer/MarginContainer/HBoxContainer/Label
@onready var tween = get_tree().create_tween()
enum State {
READY,
READING,
FINISHED
}
var current_state = State.READY
var text_queue =
func _ready():
hide_textbox()
queue_text(“Test”)
queue_text(“Hallo!!”)
queue_text(“Hier ist ein sehr langer Beispieltext, um zu schauen ob der Textumbruch funktioniert”)
func _process(_delta):
match current_state:
State.READY:
if !text_queue.is_empty():
display_text()
State.READING:
if Input.is_action_just_pressed(“ui_cancel”):
tween.kill()
label.visible_characters = - 1.0
end_symbol.text = “>”
change_state(State.FINISHED)
State.FINISHED:
if Input.is_action_just_pressed(“ui_cancel”):
change_state(State.READY)
hide_textbox()
func queue_text(next_text):
text_queue.push_back(next_text)
func hide_textbox():
start_symbol.text = “”
end_symbol.text = “”
label.text = “”
textbox_container.hide()
func show_textbox():
start_symbol.text = “*”
textbox_container.show()
func display_text():
tween = get_tree().create_tween()
var next_text = text_queue.pop_front()
label.text = next_text
label.visible_characters = 0.0
change_state(State.READING)
show_textbox()
tween.tween_property(label, “visible_characters”, len(next_text), len(next_text) * CHAR_READ_RATE).from(0)
tween.connect(“finished”, on_tween_finished)
end_symbol.text = “…”
func on_tween_finished():
end_symbol.text = “>”
change_state(State.FINISHED)
func change_state(next_state):
current_state = next_state