小编gci*_*ico的帖子

关于如何使用 KinematicBody2D 防止斜坡滑落的更多想法?

我在下面有一个基本代码。我正在尝试让玩家不要在斜坡上滑下来。我现在的坡度是 45°。如果玩家在斜坡上停止移动,它会滑下(可能是因为velocity.y += delta * gravity.y)。我可以通过法线获得角度并velocity.y = 0在玩家在斜坡上时设置并且不会滑下。但我不确定这是否是最好的方法。您对我如何实现这一目标有任何想法吗?顺便说一句,有没有办法在 gdscript(即 d efault_gravity)上获取 project_settings 值?

extends KinematicBody2D

var gravity = Vector2(0,700)
var velocity = Vector2()
var hSpeed = 150
var onSlope = false

func _ready():
    set_fixed_process(true)
    pass

func _fixed_process(delta):
    var left = Input.is_action_pressed("ui_left")
    var right = Input.is_action_pressed("ui_right")

    if left:
        velocity.x = -hSpeed
    if right:
        velocity.x = hSpeed
    if !left && ! right:
        velocity.x = 0

    velocity.y += delta * gravity.y
#   if onSlope && !left && !right: …
Run Code Online (Sandbox Code Playgroud)

game-physics gdscript godot

6
推荐指数
1
解决办法
665
查看次数

标签 统计

game-physics ×1

gdscript ×1

godot ×1