godot实现节点的移动

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,只能监听回车下面的上下左右

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值