adding animation sit if press 'x', simplify zoom code

This commit is contained in:
AleaJactaEst 2022-02-05 01:59:43 +01:00
parent 3696147038
commit 2899e4b521
2 changed files with 24 additions and 14 deletions

View file

@ -13,11 +13,10 @@ const SPEED_RUN_STRAFE = SPEED_WALK_STRAFE * 2.0
const SPEED_RUN_DOWN_STRAFE = SPEED_WALK_DOWN_STRAFE * 2.0 const SPEED_RUN_DOWN_STRAFE = SPEED_WALK_DOWN_STRAFE * 2.0
const SPEED_RUN_DOWN = SPEED_WALK_DOWN * 2.0 const SPEED_RUN_DOWN = SPEED_WALK_DOWN * 2.0
const ZOOM_Y = 0.05 const ZOOM_STEP_Y = 0.05
const ZOOM_Z = 0.1 const ZOOM_STEP_Z = 0.1
const ZOOM_STEP = 0.1 const ZOOM_MIN_Z = 0.2
const ZOOM_MIN = 0.2 const ZOOM_MAX_Z = 3.0
const ZOOM_MAX = 3.0
const SPEED_ROTATE = PI const SPEED_ROTATE = PI
const PI_2 = PI / 2.0 const PI_2 = PI / 2.0
@ -48,6 +47,7 @@ var anim_strafe_right_walk:String = "CHAR_strafe_right_walk"
var anim_walk:String = "CHAR_walk" var anim_walk:String = "CHAR_walk"
var anim_walk_backward:String = "CHAR_walk_backward" var anim_walk_backward:String = "CHAR_walk_backward"
var current_anim:String = anim_idle var current_anim:String = anim_idle
var player_sit:bool = false
func search_animation( obj:Node , root:String = "/") -> bool: func search_animation( obj:Node , root:String = "/") -> bool:
@ -96,11 +96,11 @@ func _input(event):
# Managed zoom (FPS or TPS) # Managed zoom (FPS or TPS)
if Input.is_action_pressed("camera_zoom_in"): if Input.is_action_pressed("camera_zoom_in"):
if tps: if tps:
if zoom > ZOOM_MIN: if zoom > ZOOM_MIN_Z:
zoom -= ZOOM_STEP zoom -= ZOOM_STEP_Z
var zoom3D:Vector3 = Vector3(0.0, -ZOOM_Y, -ZOOM_Z) var zoom3D:Vector3 = Vector3(0.0, -ZOOM_STEP_Y, -ZOOM_STEP_Z)
$camera_root/horizontal_root/vertical_root/Camera3D_TPS.translate_object_local(zoom3D) $camera_root/horizontal_root/vertical_root/Camera3D_TPS.translate_object_local(zoom3D)
if zoom < ZOOM_MIN: if zoom < ZOOM_MIN_Z:
$camera_root/Camera3D_FPS.make_current() $camera_root/Camera3D_FPS.make_current()
tps = false tps = false
reconciliate_rotate_camera_player = false reconciliate_rotate_camera_player = false
@ -114,13 +114,15 @@ func _input(event):
# camera_rotate_y = player_rotate_y # camera_rotate_y = player_rotate_y
reconciliate_rotate_camera_player = true reconciliate_rotate_camera_player = true
tps = true tps = true
zoom += ZOOM_STEP zoom += ZOOM_STEP_Z
$camera_root/horizontal_root/vertical_root/Camera3D_TPS.make_current() $camera_root/horizontal_root/vertical_root/Camera3D_TPS.make_current()
if zoom >= ZOOM_MAX: if zoom >= ZOOM_MAX_Z:
zoom = ZOOM_MAX zoom = ZOOM_MAX_Z
else: else:
var zoom3D:Vector3 = Vector3(0.0, ZOOM_Y, ZOOM_Z) var zoom3D:Vector3 = Vector3(0.0, ZOOM_STEP_Y, ZOOM_STEP_Z)
$camera_root/horizontal_root/vertical_root/Camera3D_TPS.translate_object_local(zoom3D) $camera_root/horizontal_root/vertical_root/Camera3D_TPS.translate_object_local(zoom3D)
elif Input.is_action_just_pressed("sit"):
player_sit = not player_sit
# If right mouse button is pressed and mouse moves, pan horizontally camera # If right mouse button is pressed and mouse moves, pan horizontally camera
# and rotate vertically # and rotate vertically
@ -270,7 +272,10 @@ func _physics_process(delta):
else: else:
switch_animation(anim_idle) switch_animation(anim_idle)
if input_x == 0.0 and input_y == 0.0: if input_x == 0.0 and input_y == 0.0:
switch_animation(anim_idle) if player_sit:
switch_animation(anim_sitting_ground_idle)
else:
switch_animation(anim_idle)
var direction = (transform.basis * Vector3(input_x, 0, input_y)).normalized() var direction = (transform.basis * Vector3(input_x, 0, input_y)).normalized()
if direction: if direction:

View file

@ -65,3 +65,8 @@ camera_zoom_out={
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":5,"pressed":false,"double_click":false,"script":null) "events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":5,"pressed":false,"double_click":false,"script":null)
] ]
} }
sit={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":88,"physical_keycode":0,"unicode":120,"echo":false,"script":null)
]
}