You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 09:33:23