Attention | Topic was automatically imported from the old Question2Answer platform. | |
Asked By | droc101 |
I have an area2D that is instanced adn when the player enters it, they will go to a level. I do this with a function inside the area2d, but if I call it on one of the instances of it (i have 5) it calls it on all 5. help please!
Here is my code for the area:
extends Area2D
# Declare member variables here. Examples:
export var path : String
var can_warp = false
# Called when the node enters the scene tree for the first time.
func _ready():
connect("body_entered", self, "enter")
connect("body_exited", self, "exit")
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
if can_warp and Input.is_key_pressed(KEY_Z):
if (get_overlapping_bodies().size() != 0):
HUD.enter_id = 0
print(path)
HUD.warp("res://level/" + path + ".tscn")
func enter(body):
can_warp = true
func exit(body):
can_warp = false
What does it print? Did you try printing the name of the area to check if they are really firing all at the same time? Keep in mind Input.is_key_pressed(KEY_Z)
returns true
as long as the key is held. You may also check if the destination of the player isn’t itself an area of this kind.
Zylann | 2020-03-19 21:19
I printed the path variable, and yes, it printed all of them
droc101 | 2020-03-19 21:30
Did all of them detected enter
and exit
properly? i.e is the one your player is on the only one for which can_warp
is true
?
Zylann | 2020-03-19 21:31
the player is the only other thing on the map besides a tilemap and texturerect
droc101 | 2020-03-19 21:33
Do you have a test project reproducing the issue so I can have a look?
Zylann | 2020-03-19 21:34
I’ll try to make one quick.
droc101 | 2020-03-19 21:36
Well… I Can’t seem to reproduce the bug… And after relaunching the editor it still happens.
droc101 | 2020-03-19 21:45
Ok, it’s NOT detecting exit
at all.
droc101 | 2020-03-19 21:50
If i enter and exit all of the areas, it works fine.
droc101 | 2020-03-19 21:52