Skip to content

Commit b51540b

Browse files
committed
Fixes scrollable credits responsiveness to up and down inputs.
1 parent 400ab22 commit b51540b

File tree

2 files changed

+22
-6
lines changed

2 files changed

+22
-6
lines changed

addons/maaacks_game_template/examples/scenes/credits/scrollable_credits.gd

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ extends Control
33

44
@onready var credits_label : RichTextLabel = %CreditsLabel
55

6-
@export var input_scroll_speed : float = 400.0
6+
@export var input_scroll_speed : float = 10.0
7+
8+
var _line_number : float = 0
79

810
func _on_visibility_changed() -> void:
911
if visible:
@@ -17,5 +19,11 @@ func _process(delta : float) -> void:
1719
if Engine.is_editor_hint() or not visible:
1820
return
1921
var input_axis = Input.get_axis("ui_up", "ui_down")
20-
if input_axis != 0:
21-
credits_label.get_v_scroll_bar().value += input_axis * delta * input_scroll_speed
22+
if abs(input_axis) > 0.5:
23+
_line_number += input_axis * delta * input_scroll_speed
24+
var max_lines = credits_label.get_line_count() - credits_label.get_visible_line_count()
25+
if _line_number < 0:
26+
_line_number = 0
27+
if _line_number > max_lines:
28+
_line_number = max_lines
29+
credits_label.scroll_to_line(round(_line_number))

scenes/credits/scrollable_credits.gd

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ extends Control
33

44
@onready var credits_label : RichTextLabel = %CreditsLabel
55

6-
@export var input_scroll_speed : float = 400.0
6+
@export var input_scroll_speed : float = 10.0
7+
8+
var _line_number : float = 0
79

810
func _on_visibility_changed() -> void:
911
if visible:
@@ -17,5 +19,11 @@ func _process(delta : float) -> void:
1719
if Engine.is_editor_hint() or not visible:
1820
return
1921
var input_axis = Input.get_axis("ui_up", "ui_down")
20-
if input_axis != 0:
21-
credits_label.get_v_scroll_bar().value += input_axis * delta * input_scroll_speed
22+
if abs(input_axis) > 0.5:
23+
_line_number += input_axis * delta * input_scroll_speed
24+
var max_lines = credits_label.get_line_count() - credits_label.get_visible_line_count()
25+
if _line_number < 0:
26+
_line_number = 0
27+
if _line_number > max_lines:
28+
_line_number = max_lines
29+
credits_label.scroll_to_line(round(_line_number))

0 commit comments

Comments
 (0)