每当运动物体3d网格点与网格图,静态物体或其他运动物体碰撞时,如何弹跳?

问题描述

我有一个运动身体,可以通过虚拟操纵杆移动。我想要的是我的运动身体应该反弹(就像曲棍球中的球击中墙壁或撞球一样)。我将网格图放在称为“ walls”的组中。这是我的播放器代码:

extends KinematicBody

var acceleration = 10
var topspeed = 40
onready var joystick = get_parent().get_node("Joystick/Joystick_button")
var vel = Vector3()
var speed = 10
var target_dir = Vector2(0,0)
var a 
var b

func _ready():
    pass 

func _physics_process(delta):
    #var target_dir = Vector2(0,0)
    target_dir = -joystick.get_value()
    if joystick.ongoing_drag != -1:
        a = -joystick.get_value()
    if joystick.ongoing_drag == -1 and joystick.i != 0:
        target_dir = a



    vel.x = lerp(vel.x,target_dir.x * speed,acceleration * delta)
    vel.z = lerp(vel.z,target_dir.y * speed,acceleration * delta)



    #vel = move_and_slide(vel,Vector3(0,1,0))
    var collision = move_and_collide(vel * delta)
    if collision:
        vel = vel.bounce(collision.normal)

编辑:最后使用的vel.bounce()不满足要求,因为它返回的弹跳非常低,但是我希望它在墙壁之间弹起曲折,直到用操纵杆改变方向为止。或者换句话说,我希望我的运动身体的运动与Flaming core Game中的球的运动完全一样(单击链接以查看其玩法),就像球与墙壁或敌人碰撞后如何弹跳。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)