extends KinematicBody2D # Declare member variables here. Examples: # var a = 2 # var b = "text" var curHp : int = 10 var maxHp : int = 10 var moveSpeed : int = 180 var damage : int = 1 var gold : int = 0 var curLevel : int = 0 var curXp : int = 0 var xpToNextLevel : int = 50 var xpToLevelIncreaseRate : float = 1.2 var interactDist : int = 70 var vel = Vector2() var facingDir = Vector2() onready var rayCast = $RayCast2D onready var anim = $AnimatedSprite # Called when the node enters the scene tree for the first time. func _ready(): pass # Replace with function body. func _physics_process (delta): vel = Vector2() # inputs if Input.is_action_pressed("move_up"): vel.y -= 1 facingDir = Vector2(0, -1) if Input.is_action_pressed("move_down"): vel.y += 1 facingDir = Vector2(0, 1) if Input.is_action_pressed("move_left"): vel.x -= 1 facingDir = Vector2(-1, 0) if Input.is_action_pressed("move_right"): vel.x += 1 facingDir = Vector2(1, 0) # normalize the velocity to prevent faster diagonal movement vel = vel.normalized() # move the player move_and_slide(vel * moveSpeed, Vector2.ZERO) manage_animations() func play_animation (anim_name): if anim.animation != anim_name: anim.play(anim_name) func manage_animations (): if vel.x > 0: play_animation("MoveRight") elif vel.x < 0: play_animation("MoveLeft") elif vel.y < 0: play_animation("MoveUp") elif vel.y > 0: play_animation("MoveDown") elif facingDir.x == 1: play_animation("IdleRight") elif facingDir.x == -1: play_animation("IdleLeft") elif facingDir.y == -1: play_animation("IdleUp") elif facingDir.y == 1: play_animation("IdleDown") # Called every frame. 'delta' is the elapsed time since the previous frame. #func _process(delta): # pass