diff options
author | dusoleil <howcansocksbereal@gmail.com> | 2022-09-15 20:52:36 -0400 |
---|---|---|
committer | dusoleil <howcansocksbereal@gmail.com> | 2022-09-15 20:52:36 -0400 |
commit | daf97e7b02a0e0f1bd9cab91b990d45773aab160 (patch) | |
tree | 3738d7f043ff35149ac1116affa736b13f7d7968 /Ship.gd | |
parent | 3e09d6846e3200881c0dbc60f9dd805ec2050c30 (diff) | |
download | godot_wildjam_49-daf97e7b02a0e0f1bd9cab91b990d45773aab160.tar.gz godot_wildjam_49-daf97e7b02a0e0f1bd9cab91b990d45773aab160.zip |
Add a ship camera (swap with Q) for testing world movement and generation
Diffstat (limited to 'Ship.gd')
-rw-r--r-- | Ship.gd | 27 |
1 files changed, 27 insertions, 0 deletions
@@ -2,6 +2,33 @@ extends RigidBody export var ang_acceleration = 240.0 +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 + +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 + else: + 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) + func _integrate_forces(_state): var stick = Input.get_axis("ship_right","ship_left") if stick != 0.0: |