36 lines
1.2 KiB
GDScript
36 lines
1.2 KiB
GDScript
extends HBoxContainer
|
|
|
|
var last_score: String = "00000000"
|
|
|
|
var digit_coords = {
|
|
1: Vector2(0, 0),
|
|
2: Vector2(8, 0),
|
|
3: Vector2(16, 0),
|
|
4: Vector2(24, 0),
|
|
5: Vector2(32, 0),
|
|
6: Vector2(0, 8),
|
|
7: Vector2(8, 8),
|
|
8: Vector2(16, 8),
|
|
9: Vector2(24, 8),
|
|
0: Vector2(32, 8)
|
|
}
|
|
|
|
func display_digits(n):
|
|
|
|
var s = "%08d" % n
|
|
var start = 8 - str(n).length() # Finds the starting position of the counter by converting the score to a string, minus the leading zeros.
|
|
var changed = false
|
|
|
|
for i in 8:
|
|
get_child(i).texture.region = Rect2(digit_coords[int(s[i])], Vector2(8, 8))
|
|
if i >= start and s[i] != last_score[i]:
|
|
changed = true
|
|
if changed:
|
|
for i in 8:
|
|
if i >= start:
|
|
var tween = create_tween()
|
|
tween.tween_property(get_child(i), "scale", Vector2(2,2), .15).set_trans(Tween.TRANS_BOUNCE)
|
|
tween.tween_property(get_child(i), "position:y", +5, .15).set_ease(tween.TRANS_QUART)
|
|
tween.tween_property(get_child(i), "scale", Vector2(1,1), .15).set_trans(Tween.TRANS_BOUNCE)
|
|
tween.tween_property(get_child(i), "position:y", -5, .15).set_ease(tween.TRANS_QUART)
|
|
last_score = s
|