Compare commits
6 Commits
922e16b582
...
99ee0a8cde
Author | SHA1 | Date |
---|---|---|
Cat Flynn | 99ee0a8cde | |
Cat Flynn | 82fd27a0a0 | |
ktyl | 3ab4d0a253 | |
ktyl | c66e17e201 | |
Cat Flynn | 31215e0e33 | |
Cat Flynn | a8065c0ea5 |
|
@ -14,3 +14,4 @@ transform = Transform( 0.515898, 0.606099, -0.605386, -0.393123, 0.795389, 0.461
|
||||||
transform = Transform( 0.856869, 0.3292, -0.396741, 0.0949996, 0.655565, 0.749139, 0.506706, -0.679604, 0.53046, -0.599122, 0, 0 )
|
transform = Transform( 0.856869, 0.3292, -0.396741, 0.0949996, 0.655565, 0.749139, 0.506706, -0.679604, 0.53046, -0.599122, 0, 0 )
|
||||||
SemiMajorAxis = 6.166
|
SemiMajorAxis = 6.166
|
||||||
Eccentricity = 0.239
|
Eccentricity = 0.239
|
||||||
|
_speed = 0.877
|
||||||
|
|
|
@ -4,6 +4,8 @@
|
||||||
|
|
||||||
[node name="OrbitCamera" type="Spatial"]
|
[node name="OrbitCamera" type="Spatial"]
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
|
_zoomSensitivity = 50.0
|
||||||
|
_cameraPath = NodePath("Camera")
|
||||||
|
|
||||||
[node name="Camera" type="Camera" parent="."]
|
[node name="Camera" type="Camera" parent="."]
|
||||||
transform = Transform( 1, 0, 0, 0, 0.964146, 0.265371, 0, -0.265371, 0.964146, 0, 2.21115, 9.48434 )
|
transform = Transform( 1, 0, 0, 0, 0.964146, 0.265371, 0, -0.265371, 0.964146, 0, 2.21115, 9.48434 )
|
||||||
|
|
|
@ -4,7 +4,25 @@ using System;
|
||||||
public class OrbitCamera : Spatial
|
public class OrbitCamera : Spatial
|
||||||
{
|
{
|
||||||
[Export]
|
[Export]
|
||||||
private float _sensitivity = 200f;
|
private float _lookSensitivity = 200f;
|
||||||
|
|
||||||
|
[Export]
|
||||||
|
private float _zoomSensitivity = 10f;
|
||||||
|
|
||||||
|
[Export]
|
||||||
|
private NodePath _cameraPath;
|
||||||
|
private Camera _camera = null;
|
||||||
|
private Camera Camera
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (_camera == null)
|
||||||
|
{
|
||||||
|
_camera = GetNode<Camera>(_cameraPath);
|
||||||
|
}
|
||||||
|
return _camera;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private Vector2 _rotation;
|
private Vector2 _rotation;
|
||||||
private bool _canRotate = false;
|
private bool _canRotate = false;
|
||||||
|
@ -24,7 +42,8 @@ public class OrbitCamera : Spatial
|
||||||
public override void _Process(float delta)
|
public override void _Process(float delta)
|
||||||
{
|
{
|
||||||
Rotation = Vector3.Zero;
|
Rotation = Vector3.Zero;
|
||||||
var sensitivity = -1f / _sensitivity;
|
var sensitivity = -1f / _lookSensitivity;
|
||||||
|
|
||||||
Rotate(Vector3.Right, _rotation.y * sensitivity);
|
Rotate(Vector3.Right, _rotation.y * sensitivity);
|
||||||
Rotate(Vector3.Up, _rotation.x * sensitivity);
|
Rotate(Vector3.Up, _rotation.x * sensitivity);
|
||||||
}
|
}
|
||||||
|
@ -32,9 +51,23 @@ public class OrbitCamera : Spatial
|
||||||
// left click to drag
|
// left click to drag
|
||||||
private void HandleMouseButton(InputEventMouseButton mouseButton)
|
private void HandleMouseButton(InputEventMouseButton mouseButton)
|
||||||
{
|
{
|
||||||
if (mouseButton.ButtonIndex != (int)ButtonList.Left) return;
|
switch ((ButtonList)mouseButton.ButtonIndex)
|
||||||
|
{
|
||||||
|
case ButtonList.Left:
|
||||||
|
_canRotate = mouseButton.Pressed;
|
||||||
|
break;
|
||||||
|
case ButtonList.WheelUp:
|
||||||
|
Zoom(-1);
|
||||||
|
break;
|
||||||
|
case ButtonList.WheelDown:
|
||||||
|
Zoom(1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
_canRotate = mouseButton.Pressed;
|
private void Zoom(float amount)
|
||||||
|
{
|
||||||
|
Camera.Fov += amount * _zoomSensitivity / Camera.Fov;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void HandleMouseMovement(InputEventMouseMotion mouseMotion)
|
private void HandleMouseMovement(InputEventMouseMotion mouseMotion)
|
||||||
|
|
|
@ -134,9 +134,12 @@ public class OrbitSystem : Node, IMassive, ILocation
|
||||||
|
|
||||||
private float _time = 0;
|
private float _time = 0;
|
||||||
|
|
||||||
|
[Export]
|
||||||
|
private float _speed = 3f;
|
||||||
|
|
||||||
public override void _Process(float delta)
|
public override void _Process(float delta)
|
||||||
{
|
{
|
||||||
_time += delta * 3f;
|
_time += delta * _speed;
|
||||||
InvalidateGeometry();
|
InvalidateGeometry();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue