32 lines
725 B
GDScript
32 lines
725 B
GDScript
|
extends Sprite2D
|
||
|
|
||
|
|
||
|
# How fast the player will move (pixels/sec).
|
||
|
@export var speed = 400
|
||
|
# Size of the game window.
|
||
|
var screen_size
|
||
|
|
||
|
|
||
|
func _ready():
|
||
|
screen_size = get_viewport_rect().size
|
||
|
|
||
|
|
||
|
func _process(delta):
|
||
|
var velocity = Vector2.ZERO # The player's movement vector.
|
||
|
if Input.is_action_pressed("move_right"):
|
||
|
velocity.x += 1
|
||
|
if Input.is_action_pressed("move_left"):
|
||
|
velocity.x -= 1
|
||
|
if Input.is_action_pressed("move_down"):
|
||
|
velocity.y += 1
|
||
|
if Input.is_action_pressed("move_up"):
|
||
|
velocity.y -= 1
|
||
|
|
||
|
if velocity.length() <= 0:
|
||
|
return
|
||
|
|
||
|
velocity = velocity.normalized() * speed
|
||
|
position += velocity * delta
|
||
|
position.x = clamp(position.x, 0, screen_size.x)
|
||
|
position.y = clamp(position.y, 0, screen_size.y)
|