Connect the focus_entered
-signal of your buttons to a callback that moves the arrow sprite to the buttons position. No use in doing it in _process
i.e. every frame.
Also: If you find yourself repeating the same node paths, consider adding a variable to store the node. That will be more efficient and more readable, e.g.:
onready var nav_buttons = $CanvasLayer/Control/Anchor/Pip_boy_Menu/Nav_buttons
func arrow_pos():
if nav_buttons.get_node("Items").has_focus():
# ...
Lastly to enure that your code is formatted properly on this site each line has to start with 4 spaces, each additional 4 spaces equal an indentation layer. If you don't take this into account, underscores are interpreted as markdown and indentation is lost.