added wall running
This commit is contained in:
@@ -15,3 +15,34 @@ func standard_movement(delta):
|
||||
|
||||
func apply_gravity(delta):
|
||||
character.velocity.y -= 9.8 * 1.25 * delta
|
||||
|
||||
func enable_wall_rays():
|
||||
if Input.is_action_pressed("move_left"):
|
||||
character.wall_ray_1.enabled = true
|
||||
else:
|
||||
character.wall_ray_1.enabled = false
|
||||
|
||||
if Input.is_action_pressed("move_right"):
|
||||
character.wall_ray_2.enabled = true
|
||||
else:
|
||||
character.wall_ray_2.enabled = false
|
||||
|
||||
func can_wall_run():
|
||||
if character.wall_ray_1.is_colliding() or character.wall_ray_2.is_colliding() or character.wall_ray_3.is_colliding():
|
||||
return true
|
||||
|
||||
func start_wall_running():
|
||||
var running_surface_normal
|
||||
var wall_run_direction
|
||||
if character.wall_ray_1.is_colliding():
|
||||
running_surface_normal = character.wall_ray_1.get_collision_normal()
|
||||
wall_run_direction = running_surface_normal.rotated(Vector3(0,1,0), deg_to_rad(90))
|
||||
elif character.wall_ray_2.is_colliding():
|
||||
running_surface_normal = character.wall_ray_2.get_collision_normal()
|
||||
wall_run_direction = running_surface_normal.rotated(Vector3(0,-1,0), deg_to_rad(90))
|
||||
|
||||
print("SURFACE NORMAL : ", running_surface_normal)
|
||||
|
||||
character.wall_run_direction = wall_run_direction
|
||||
character.wall_run_surface_normal = running_surface_normal
|
||||
Transitioned.emit(self,"wall running")
|
||||
|
||||
Reference in New Issue
Block a user