func _ready():
screen_size=get_viewport_rect().size
#获取游戏窗口大小
func _process(delta):
var velocity=Vector2.ZERO
#用向量存储节点移动方向
if Input.is_action_pressed("ui_right"):
velocity.x+=1
if Input.is_action_pressed("ui_left"):
velocity.x-=1
if Input.is_action_pressed("ui_down"):
velocity.y+=1
if Input.is_action_pressed("ui_up"):
velocity.y-=1
#键盘监听
if velocity.length()<=0:
return
#判断是否移动如果为移动则直接退出
velocity=velocity.normalized()*speed
#向量单位化,避免45°移动导致位移为根号2
position+=velocity*delta
#将位移累加给位置属性
position=position.clamp(Vector2.ZERO,screen_size)
#clamp函数保证位置在(0,0)与窗口大小之间
注意:按键映射要在项目设置中设置,ui_为godot默认键盘监听,无法监听wasd,只能监听回车下面的上下左右