extends Area2D signal get_apple signal player_dead export (PackedScene) var getitemeffect export var speed = 600 export var w = 96 var screen_size var deaded = false func _ready(): screen_size = get_viewport_rect().size $AnimationPlayer.play("idle") func _process(delta): if deaded: return var velocity = Vector2() if Input.is_action_pressed("ui_right"): velocity.x += 1 $Sprite.flip_h = true if Input.is_action_pressed("ui_left"): velocity.x -= 1 $Sprite.flip_h = false if velocity.length() > 0: velocity = velocity.normalized() * speed $AnimationPlayer.play("walk") else: $AnimationPlayer.play("idle") position += velocity * delta position.x = clamp(position.x, w/2, screen_size.x - (w/2)) func _on_Player_body_entered(body): if deaded: return if body.kind == "Apple": var effect = getitemeffect.instance() effect.position = body.position get_node("/root/Main").add_child(effect) $GetAppleSe.play() emit_signal("get_apple") body.queue_free() # kill Apple else: $DamageSe.play() dead() func dead(): emit_signal("player_dead") deaded = true $AnimationPlayer.play("dead") $CollisionShape2D.set_deferred("disabled", true) # wait 3 sec yield(get_tree().create_timer(3), "timeout") deaded = false $AnimationPlayer.play("idle") $CollisionShape2D.disabled = false