Godot 4中如何根据手部运动计算投掷力实现RigidBody2D投掷
如何根据手部运动计算RigidBody2D的投掷力?
我需要实现投掷效果:当前松开箱子后它只会下落,想让它能被“投掷”出去,箱子是一个RigidBody2D,场景需求可参考视频(若视频失效请告知我更新)。
手部移动实现代码
func _integrate_forces(state): var _transform = state.get_transform() if idName == "Left": var mouse_position = get_global_mouse_position() var abovePlayer = Vector2(4,-8) var direction = (mouse_position - _player.global_position ) var distance = direction.length() if distance > MAX_DISTANCE: direction = direction.normalized() * MAX_DISTANCE var hands_pos = _player.global_position + abovePlayer + direction _transform.origin = hands_pos state.set_transform(_transform)
箱子被拾取后的处理代码
func _integrate_forces(state): angular_velocity = 0 var _transform = state.get_transform() if(following): gravity_scale = 0; var middlePoint = get_middle_point(Game.bodyHandLeft.global_position,Game.bodyHandRight.global_position) _transform.origin = middlePoint call_deferred("lock_me") else: if(followTarget != null): followTarget = null; call_deferred("let_me_go") state.set_transform(_transform)
我尝试获取被拾取后箱子的linear_velocity,结果始终为0,constant_force也一直是0;查看手部的这些参数结果同样为0。不知道该如何获取手部/箱子的运动力,从而调用apply_impulse()实现投掷,恳请各位提供帮助,提前感谢!
内容的提问来源于stack exchange,提问作者Denis Galla
相关产品推荐
相关产品推荐

