Add switch to velocity-based movement
This commit is contained in:
parent
15b8a20493
commit
3bb4ed31e6
15
Player.gd
15
Player.gd
@ -113,12 +113,17 @@ func _physics_process(delta):
|
|||||||
|
|
||||||
# Apply input
|
# Apply input
|
||||||
var input = DeadzoneInput.get_input("move", 0.65, 0.2, 0.0, false)
|
var input = DeadzoneInput.get_input("move", 0.65, 0.2, 0.0, false)
|
||||||
print(input)
|
|
||||||
move_acceleration.z += input.x * -move_accel
|
# Either do velocity-based movement or force-based movement
|
||||||
|
if Input.is_action_pressed("movement_modifier"):
|
||||||
|
move_velocity = transform.basis * Vector3.FORWARD * 15.0 * input.x
|
||||||
|
else:
|
||||||
|
move_acceleration += transform.basis * Vector3.FORWARD * move_accel * input.x
|
||||||
|
|
||||||
rotate(transform.basis.y, delta * rotate_speed * -input.y)
|
rotate(transform.basis.y, delta * rotate_speed * -input.y)
|
||||||
|
|
||||||
# Make movement local
|
# Make movement local
|
||||||
move_acceleration = transform.basis * move_acceleration
|
move_acceleration = move_acceleration
|
||||||
|
|
||||||
# Get acceleration caused by gravity
|
# Get acceleration caused by gravity
|
||||||
var gravity_acceleration = get_gravity_acceleration()
|
var gravity_acceleration = get_gravity_acceleration()
|
||||||
@ -144,7 +149,9 @@ func _physics_process(delta):
|
|||||||
reset_moving_platform_velocity()
|
reset_moving_platform_velocity()
|
||||||
|
|
||||||
# Apply movement to position
|
# Apply movement to position
|
||||||
velocity = move_and_slide(velocity)
|
# Add and subtract the move_velocity because we do want to apply it, but not remember it for
|
||||||
|
# next frame
|
||||||
|
velocity = move_and_slide(velocity + move_velocity) - move_velocity
|
||||||
|
|
||||||
# Clamp the velocity just to be save
|
# Clamp the velocity just to be save
|
||||||
velocity.x = clamp(velocity.x, -MAX_VEL, MAX_VEL)
|
velocity.x = clamp(velocity.x, -MAX_VEL, MAX_VEL)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user