Topic was automatically imported from the old Question2Answer platform.
Asked By
rodell2020
using GDSCRIPT (not C# etc)
I have root scene called “test level”
it has as children
Player
(a camera2d as a child of player)
HUD
COINS
(with coin1 coin2 etc. as a child of COINS)
Portal
(with green Portal and blue Portal as children of Portal)
The HUD displays the number of coins you have collected
when I use the green portal it takes you to another section of the screen
(i would like the green portal to delete HUD and load HUD2)
var hud2 = preload("path to HUD2")
func remove_hud():
$HUD.queue_free()
func add_hud():
h = hud2.instance()
add_child(h)
queue_free() tells a node to remove itself from the tree.
preload the scene you want to add by setting a var with preload, and add one by instancing it then adding it as a child.
you can connect a signal to the added scene using the connect() method, with something like this:
$coin.connect("signal to connect", path_to_hud2_in_tree, "function in hud2 script")
make sure that the function you’re connecting to in the hud2 script has the right parameters
NachoCheese989 | 2022-09-13 11:13
i got most of it but i am having trouble with $coin.connect…
what is the path_in_tree
Richard_A_Odell | 2022-11-10 11:48
so fr i have $COINS/coin1.connect(“coin_collected”,
the function in hud2 is _on_coconut_collected():
what i am having trouble with is the path_to_hud2_in _tree
can some help me figure it out
Richard_A_Odell | 2022-11-10 12:08
path_to_hud2 is the path to the hud2 node in the tree that was instanced in. try making a new node in the editor and then calling $node.add_child(hud2_instance), then you can use $coin.connect("signal to connect", $node.get_child(0), "function to connect"). replace $node