-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPlayerController.cs
More file actions
93 lines (79 loc) · 2.5 KB
/
PlayerController.cs
File metadata and controls
93 lines (79 loc) · 2.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
using Godot;
using System;
public partial class PlayerController : Node
{
private Character _character;
private Vector2 _mouseMove;
private Vector2 _mousePosition;
private int _mouseWheelPosition;
private bool _mousePressed;
public override void _Input(InputEvent @event)
{
switch (@event)
{
case InputEventMouseMotion eventMouseMotion:
_mouseMove += eventMouseMotion.Relative;
_mousePosition = eventMouseMotion.Position;
break;
case InputEventMouseButton eventMouseButton:
switch (eventMouseButton.ButtonIndex)
{
case MouseButton.None:
break;
case MouseButton.Left:
_mousePressed = eventMouseButton.Pressed;
break;
case MouseButton.Right:
break;
case MouseButton.Middle:
break;
case MouseButton.WheelUp:
if (eventMouseButton.Pressed)
_mouseWheelPosition++;
break;
case MouseButton.WheelDown:
if (eventMouseButton.Pressed)
_mouseWheelPosition--;
break;
case MouseButton.WheelLeft:
break;
case MouseButton.WheelRight:
break;
case MouseButton.Xbutton1:
break;
case MouseButton.Xbutton2:
break;
default:
throw new ArgumentOutOfRangeException();
}
break;
}
}
public override void _Ready()
{
_character = (Character) GetParent();
}
public override void _Process(double delta)
{
_character.MoveVector = Vector3.Zero;
_character.RotationVector = Vector3.Zero;
Input.MouseMode = Input.MouseModeEnum.Captured;
_character.Trigger = Input.IsActionPressed("trigger");
_character.MoveVector.X += Input.IsActionPressed("right") ? 1.0f : 0.0f;
_character.MoveVector.X += Input.IsActionPressed("left") ? -1.0f : 0.0f;
_character.MoveVector.Z += Input.IsActionPressed("forward") ? -1.0f : 0.0f;
_character.MoveVector.Z += Input.IsActionPressed("backward") ? 1.0f : 0.0f;
_character.MoveVector = _character.MoveVector.Normalized();
_character.Jump = Input.IsActionPressed("jump");
_character.Crouch = Input.IsActionPressed("crouch");
_character.Aim = Input.IsActionPressed("aim");
_character.Prone = 0.0f;
_character.Prone += Input.IsActionPressed("proneLeft") ? 25.0f : 0.0f;
_character.Prone -= Input.IsActionPressed("proneRight") ? 25.0f : 0.0f;
_character.Prone = Mathf.DegToRad(_character.Prone);
_character.RotationVector = new Vector3(0, -_mouseMove.X* 10.0f, 0);
_character.CameraRotationVector = new Vector3(_mouseMove.Y * 0.1f, 0, 0);
_mouseMove = Vector2.Zero;
base._Process(delta);
}
}