i have a code to spawn a pillar to damage the player on the player's position
here is the code of the spawner
node2D:
extends Node2D
var child_position
var current_pillars = 0
var pillar = preload("res://plant pillar.tscn").instance()
func _on_Timer_timeout():
child_position = get_node("Position2D").position.x
$".".position.x = child_position
add_child(pillar)
current_pillars + 1
position2D:
extends Position2D
var pillar = preload("res://plant pillar.tscn").instance()
func _process(delta):
position.x = get_parent().get_parent().get_node("player").position.x
and here is the code for the pillar:
extends Area2D
var damage = 30
func _ready():
$Sprite.play('growing')
func _on_plant_pillar_body_entered(body):
if body.is_in_group("players"):
body.on_hit(damage)
func _on_Sprite_animation_finished():
$Sprite.play('full_grown')
$CollisionShape2D.disabled = false
$Timer2.start()
func _on_Timer2_timeout():
$".".queue_free()
the biggest problem is that after the pillar is spawned for the first time he does not goes true the animation and so is already spwaned fully grown and the collision is set to true,
thank you