Godot移动端2D左右移动报错:'float'与'Vector2'无法执行'+'运算
问题原因与修复方案
错误核心是类型不匹配:position.x是单个浮点数值,而Vector2.LEFT * speed * delta计算后得到的是Vector2类型(包含x、y两个分量),这两种类型无法直接用+运算符相加。
修复方案一:直接操作x分量数值
既然只需要修改x轴坐标,直接用数值计算即可(Vector2.LEFT的x分量是-1,Vector2.RIGHT的x分量是1):
extends Sprite2D const speed : int = 5 func _ready(): pass func _process(delta): if Input.is_action_pressed("game_left"): position.x += -speed * delta if Input.is_action_pressed("game_right"): position.x += speed * delta
修复方案二:直接操作整个position向量
如果不想拆分数值,也可以直接对position(本身是Vector2类型)进行向量加法——因为Vector2.LEFT/RIGHT的y分量是0,不会影响y轴坐标:
extends Sprite2D const speed : int = 5 func _ready(): pass func _process(delta): if Input.is_action_pressed("game_left"): position += Vector2.LEFT * speed * delta if Input.is_action_pressed("game_right"): position += Vector2.RIGHT * speed * delta
内容的提问来源于stack exchange,提问作者George000001
相关产品推荐
相关产品推荐

