move_and_slide() 调用 [duplicate] 的参数太多

Too many arguments for move_and_slide() call [duplicate]

提问人:kori 提问时间:8/28/2023 最后编辑:Robkori 更新时间:8/28/2023 访问量:63

问:

extends CharacterBody2D

var speed = 150
var jumpforce = 500
var gravity = 700

var vel = Vector2()

func _physics_process(delta):
    if Input.is_action_pressed("player_left"):
        vel.x -= speed
    elif Input.is_action_pressed("player_right"):
        vel.x += speed
    
    move_and_slide(vel, Vector2.UP)

为什么出错???错误:move_and_slide() 调用的参数过多。预计最多 0 个,但收到 2 个。

我看了指南如何在 godot 上制作游戏,但在指南 3 版本的引擎上,我坐在 4 上,由于我几乎不知道引擎和 gdscript 的基础知识,我发现很难自己解决问题,你能帮忙吗?

GD 戈多 GDScript

评论

0赞 derpirscher 8/28/2023
在 v4 中不接受任何参数。查看文档move_and_slide

答:

0赞 evilmandarine 8/28/2023 #1

在版本 4 中,velocity 现在与 up_direction 等一起成为节点属性。 现在不带任何论据。在代码中,替换以下内容:move_and_slide()

move_and_slide(vel, Vector2.UP)

有了这个:

move_and_slide()

此外,删除变量并按如下方式进行更新:vel

velocity.x += speed

它应该起作用。