Here's what I did with the character selection. The label is basically the parent of the buttons, but they could be parented to anything:
extends Node2D
signal change_number(a)
signal start_game()
func _on_Button_pressed():
get_node("Label/Button9").disabled = false
emit_signal("change_number", 1)
func _on_Button2_pressed():
get_node("Label/Button9").disabled = false
emit_signal("change_number", 2)
func _on_Button3_pressed():
get_node("Label/Button9").disabled = false
emit_signal("change_number", 3)
func _on_Button4_pressed():
get_node("Label/Button9").disabled = false
emit_signal("change_number", 4)
func _on_Button5_pressed():
get_node("Label/Button9").disabled = false
emit_signal("change_number", 5)
func _on_Button6_pressed():
get_node("Label/Button9").disabled = false
emit_signal("change_number", 6)
func _on_Button7_pressed():
get_node("Label/Button9").disabled = false
emit_signal("change_number", 7)
func _on_Button8_pressed():
get_node("Label/Button9").disabled = false
emit_signal("change_number", 8)
func _on_Button9_pressed():
emit_signal("start_game")
get_node("Label").hide()
func _on_AnimatedSprite_remove_selection():
get_node("Label").hide()
And the Animated Sprite:
extends AnimatedSprite
onready var char_num = 0
onready var can_play = false
signal remove_selection()
func _process(delta):
if can_play == true:
if Input.is_action_pressed("Up"):
play("Char_" + str(char_num) + "_Walk_Up")
elif Input.is_action_pressed("Down"):
play("Char_" + str(char_num) + "_Walk_Down")
elif Input.is_action_pressed("Left"):
play("Char_" + str(char_num) + "_Walk_Left")
elif Input.is_action_pressed("Right"):
play("Char_" + str(char_num) + "_Walk_Right")
if Input.is_action_just_released("Up"):
play("Char_" + str(char_num) + "_Idle_Up")
if Input.is_action_just_released("Down"):
play("Char_" + str(char_num) + "_Idle_Down")
if Input.is_action_just_released("Left"):
play("Char_" + str(char_num) + "_Idle_Left")
if Input.is_action_just_released("Right"):
play("Char_" + str(char_num) + "_Idle_Right")
func _on_CharacterSelection_change_number(a):
char_num = a
play("Char_" + str(char_num) + "_Idle_Down")
func _on_CharacterSelection_start_game():
emit_signal("remove_selection")
can_play = true
I got the assets from Itch.io. Look for Horror City Sprite pack, and you should find the ones I'm using.