34 lines
1021 B
GDScript
Executable File
34 lines
1021 B
GDScript
Executable File
extends Node2D
|
|
|
|
const IDLE_DURATION = 1.0
|
|
export var move_to = Vector2.RIGHT*48
|
|
export var speed = 3.0
|
|
onready var platform = $Body
|
|
onready var tween = $MoveTween
|
|
onready var damage_area = $Body/Area2D/CollisionShape2D
|
|
onready var body_collision = $Body/CollisionShape2D
|
|
var follow = Vector2.ZERO
|
|
var pos_to_follow
|
|
|
|
func _ready():
|
|
_init_tween()
|
|
|
|
func _init_tween():
|
|
var duration = move_to.length() / float(speed * 12)
|
|
tween.interpolate_property(self,"follow",Vector2.ZERO,move_to,duration,Tween.TRANS_LINEAR,Tween.EASE_IN_OUT,IDLE_DURATION)
|
|
tween.interpolate_property(self,"follow",move_to,Vector2.ZERO,duration,Tween.TRANS_LINEAR,Tween.EASE_IN_OUT,duration * 2 * IDLE_DURATION)
|
|
tween.start()
|
|
|
|
func _physics_process(delta):
|
|
platform.position = platform.position.linear_interpolate(follow,0.075)
|
|
pos_to_follow = platform.position
|
|
|
|
|
|
func _on_Area2D_body_entered(body):
|
|
if body != platform:
|
|
body.emit_signal("killed")
|
|
body_collision.set_deferred("disabled",true)
|
|
damage_area.set_deferred("disabled",true)
|
|
|
|
|