ape-ame/Player.gd
2024-05-06 10:05:42 -04:00

47 lines
1.3 KiB
GDScript

extends RigidBody2D
var speed = 1000 # move speed in pixels/sec
var rotation_speed = 3 # turning speed in radians/sec
var quare = preload("res://quare.tscn")
var exagon = preload("res://exagon.tscn")
@onready var notifier = $"../Notification"
var absolute_movement = false
var config = ConfigFile.new()
const idle_anim = preload("res://player_idle.gif")
const moving_anim = preload("res://player_moving.gif")
var moving = false
func _ready():
update_animation()
if config.load("user://settings.cfg") == OK:
absolute_movement = not config.get_value("config", "relative_controls")
func update_animation():
if moving:
$AnimatedSprite2D.sprite_frames = moving_anim
else:
$AnimatedSprite2D.sprite_frames = idle_anim
$AnimatedSprite2D.play("gif")
func _physics_process(delta):
look_at(get_global_mouse_position())
var move_input = Input.get_axis("down", "up")
var side_input = Input.get_axis("right", "left")
if move_input > 0 and not moving:
moving = true
update_animation()
elif move_input <= 0 and moving:
moving = false
update_animation()
if absolute_movement:
apply_central_force(Vector2(side_input, move_input).normalized() * -speed)
else:
apply_central_force(transform.y * side_input * speed / -2 + transform.x * move_input * speed)
func destroy():
$DeathFX.play()
get_tree().paused = true
$"../GameOver".visible = true