首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >线性插值GDscript

线性插值GDscript
EN

Stack Overflow用户
提问于 2021-03-17 05:17:58
回答 1查看 152关注 0票数 0

但是,我尝试在GODOT中使用lerp()函数进行线性插值;我的项目中的对象突然停止,就像它永远不会变慢一样。

代码语言:javascript
复制
extends KinematicBody

var SPEED = 200
var direction = Vector3()

func _ready():
    pass

func _physics_process(_delta):
    direction = Vector3(0,0,0)
    if Input.is_action_pressed("ui_left"):
        direction.x -= 1
        lerp(direction.x, 0, 1)
    if Input.is_action_pressed("ui_right"):
        direction.x += 1
        lerp(direction.x, 0, 1)
    if Input.is_action_pressed("ui_up"):
        direction.z -= 1
        lerp(direction.z, 0, 1)
    if Input.is_action_pressed("ui_down"):
        direction.z += 1
        lerp(direction.z, 0, 1)
        
    direction = direction.normalized()
    direction = direction * SPEED * _delta
    move_and_slide(direction, Vector3(0,1,0))
EN

回答 1

Stack Overflow用户

发布于 2021-06-09 15:22:46

通过将lerp函数的最后一个参数设置为“1”,可以将第二个参数的权重设置为100%。所以它会立即跳到这个位置。要使该值平滑地减慢,必须减小该值。(可能的取值范围为0到1.0)

下面是一些例子:

代码语言:javascript
复制
lerp(0, 4, 0.75) # Returns 3.0
lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66663545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档