player script
extends KinematicBody2D
#signal player_death
#signal goal
var floating = false
var grid_size = 40
var collisions_enabled = true
onready var tween = $Tween
onready var ray = $RayCast2D
export var speed = 0.2
var inputs = {
"move_up": Vector2.UP,
"move_down": Vector2.DOWN,
"move_left": Vector2.LEFT,
"move_right": Vector2.RIGHT
}
func _ready():
#position = position.snapped(Vector2.ONE * grid_size)
position += Vector2.ONE * grid_size/2
func _unhandled_input(event):
if tween.is_active():
return
for dir in inputs.keys():
if event.is_action_pressed(dir):
move(dir)
func move(dir):
var vector_pos = inputs[dir] * grid_size
ray.cast_to = vector_pos
ray.force_raycast_update()
$Tween.interpolate_property(self, "position", position, position + vector_pos, speed, Tween.TRANS_SINE,Tween.EASE_IN_OUT)
if !ray.is_colliding():
$Tween.start()```