summaryrefslogtreecommitdiffstats
path: root/Ship.gd
diff options
context:
space:
mode:
authordusoleil <howcansocksbereal@gmail.com>2022-09-16 07:56:20 -0400
committerdusoleil <howcansocksbereal@gmail.com>2022-09-16 07:56:20 -0400
commitf8d1f2dc1bd6356c33d023629fbef27f362c7aa2 (patch)
tree13b8b0e1a0d29562f66ddb20b1490bb471b4b0f8 /Ship.gd
parent65baf0c396004d2ea36a871824898abc88f5977a (diff)
downloadgame_jam49-f8d1f2dc1bd6356c33d023629fbef27f362c7aa2.tar.gz
game_jam49-f8d1f2dc1bd6356c33d023629fbef27f362c7aa2.zip
Fix both cameras to follow the boat, but ignore its yaw
Diffstat (limited to 'Ship.gd')
-rw-r--r--Ship.gd31
1 files changed, 14 insertions, 17 deletions
diff --git a/Ship.gd b/Ship.gd
index 231057c..feb5ad2 100644
--- a/Ship.gd
+++ b/Ship.gd
@@ -2,32 +2,29 @@ extends RigidBody
export var ang_acceleration = 240.0
+onready var player_cam_pivot = $"fps_controller"
+onready var player_cam = player_cam_pivot.get_node("Camera")
+onready var ship_cam_pivot = $"CameraPivot"
+onready var ship_cam = ship_cam_pivot.get_node("Camera")
+
func lock_camera_to_boat():
- var boat = self
- var cam = $"CameraPivot"
- cam.look_at_from_position(Basis(Vector3.UP*boat.global_transform.basis.get_euler().y) * (boat.global_transform.origin + Vector3.UP*50.0 + Vector3.BACK*70.0), boat.global_transform.origin, Vector3.UP)
- var boat_direction = boat.global_transform.basis
- boat_direction = Basis(Vector3.UP*boat_direction.get_euler().y)
- cam.global_transform.basis = boat_direction
- cam.global_transform.origin.y = 50.0
+ player_cam_pivot.global_transform.basis = Basis(Vector3.UP*player_cam_pivot.global_transform.basis.get_euler().y)
+ ship_cam_pivot.global_transform.basis = Basis(Vector3.UP*ship_cam_pivot.global_transform.basis.get_euler().y)
func _physics_process(_delta):
if Input.is_action_just_pressed("camera_swap"):
- var cam = $"CameraPivot/Camera"
- if cam.current:
- $"/root/Main/fps_controller/Camera".current = true
+ if ship_cam.current:
+ player_cam.current = true
else:
- cam.current = true
+ ship_cam.current = true
lock_camera_to_boat()
func _input(event):
- var pivot = $"CameraPivot"
- var cam = pivot.get_node("Camera")
if event is InputEventMouseMotion:
- cam.rotation.x += -event.relative.y * Settings.mouse_sens
- cam.rotation.x = clamp(cam.rotation.x, -1.2, 1.2)
- cam.rotation.y += -event.relative.x * Settings.mouse_sens
- cam.rotation.y = wrapf(cam.rotation.y, 0, TAU)
+ ship_cam.rotation.x += -event.relative.y * Settings.mouse_sens
+ ship_cam.rotation.x = clamp(ship_cam.rotation.x, -1.2, 1.2)
+ ship_cam.rotation.y += -event.relative.x * Settings.mouse_sens
+ ship_cam.rotation.y = wrapf(ship_cam.rotation.y, 0, TAU)
func _integrate_forces(_state):
var stick = Input.get_axis("ship_right","ship_left")