问题描述
我有一个运动身体,可以通过虚拟操纵杆移动。我想要的是我的运动身体应该反弹(就像曲棍球中的球击中墙壁或撞球一样)。我将网格图放在称为“ 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 (将#修改为@)