From a8d151d568df9186f70f8cb96f28ae2a3ffa2874 Mon Sep 17 00:00:00 2001 From: Zakarya Date: Mon, 15 Jul 2024 15:10:44 -0700 Subject: [PATCH] Add controller support to PR #22 --- README.md | 2 +- addons/fpc/character.gd | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 126a54e..0688284 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ You can make this a super basic controller by just disabling everything. - In the controls export group, there is a commented section at the end that says "Uncomment this if you want full controller support". Uncomment that block. - Make a key map for each direction (left, right, up, down) and map them to your joystick. - Write in these keymaps in the controls section of the player settings. -- In the `_process` function, there is another block of commented code at the end that says the same thing. Uncomment that too. +- In the `handle_head_rotation` function, there is another block of commented code that says the same thing. Uncomment that too. - You should now be able to look around with the joystick. Make sure you add the other controls to the input map. (movement, jumping, crouching, sprinting, etc.) **How to change settings:** diff --git a/addons/fpc/character.gd b/addons/fpc/character.gd index 38b6b6a..13bdf6b 100644 --- a/addons/fpc/character.gd +++ b/addons/fpc/character.gd @@ -40,10 +40,10 @@ extends CharacterBody3D @export var SPRINT : String = "sprint" # Uncomment if you want full controller support -#@export var LOOK_LEFT : String -#@export var LOOK_RIGHT : String -#@export var LOOK_UP : String -#@export var LOOK_DOWN : String +#@export var LOOK_LEFT : String = "look_left" +#@export var LOOK_RIGHT : String = "look_right" +#@export var LOOK_UP : String = "look_up" +#@export var LOOK_DOWN : String = "look_down" @export_group("Feature Settings") @export var jumping_enabled : bool = true @@ -221,8 +221,13 @@ func handle_movement(delta, input_dir): func handle_head_rotation(): HEAD.rotation_degrees.y -= mouseInput.x * mouse_sensitivity HEAD.rotation_degrees.x -= mouseInput.y * mouse_sensitivity - mouseInput = Vector2(0,0) + # Uncomment for controller support + #var controller_view_rotation = Input.get_vector(LOOK_DOWN, LOOK_UP, LOOK_RIGHT, LOOK_LEFT) * 0.035 # These are inverted because of the nature of 3D rotation. + #HEAD.rotation.x += controller_view_rotation.x + #HEAD.rotation.y += controller_view_rotation.y + + mouseInput = Vector2(0,0) HEAD.rotation.x = clamp(HEAD.rotation.x, deg_to_rad(-90), deg_to_rad(90)) @@ -344,11 +349,6 @@ func _process(delta): Input.mouse_mode = Input.MOUSE_MODE_VISIBLE Input.MOUSE_MODE_VISIBLE: Input.mouse_mode = Input.MOUSE_MODE_CAPTURED - - # Uncomment if you want full controller support - #var controller_view_rotation = Input.get_vector(LOOK_LEFT, LOOK_RIGHT, LOOK_UP, LOOK_DOWN) - #HEAD.rotation_degrees.y -= controller_view_rotation.x * 1.5 - #HEAD.rotation_degrees.x -= controller_view_rotation.y * 1.5 func _unhandled_input(event):