Survivalcraft API 1.8.2.3 v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
DebugCamera.cs
浏览该文件的文档.
1using Engine;
3using Engine.Input;
4
5namespace Game {
7 public static string AmbientParameters = string.Empty;
8
9 public static string PlantParameters = string.Empty;
10
12
14
16
17 public override bool UsesMovementControls => true;
18
19 public override bool IsEntityControlEnabled => true;
20
21 public DebugCamera(GameWidget gameWidget) : base(gameWidget) { }
22
23 public override void Activate(Camera previousCamera) {
24 m_position = previousCamera.ViewPosition;
25 m_direction = previousCamera.ViewDirection;
27 }
28
29 public override void Update(float dt) {
30 dt = MathUtils.Min(dt, 0.1f);
31 Vector3 zero = Vector3.Zero;
32 Vector2 vector = Vector2.Zero;
33 ComponentInput componentInput = GameWidget.PlayerData.ComponentPlayer?.ComponentInput;
34 if (componentInput != null) {
35 zero = componentInput.PlayerInput.CameraMove * new Vector3(1f, 0f, 1f);
36 vector = componentInput.PlayerInput.CameraLook;
37 }
38 bool num = Keyboard.IsKeyDown(Key.Shift);
39 bool flag = Keyboard.IsKeyDown(Key.Control);
40 Vector3 direction = m_direction;
41 Vector3 unitY = Vector3.UnitY;
42 Vector3 vector2 = Vector3.Normalize(Vector3.Cross(direction, unitY));
43 float num2 = 8f;
44 if (num) {
45 num2 *= 10f;
46 }
47 if (flag) {
48 num2 /= 10f;
49 }
50 Vector3 zero2 = Vector3.Zero;
51 zero2 += num2 * zero.X * vector2;
52 zero2 += num2 * zero.Y * unitY;
53 zero2 += num2 * zero.Z * direction;
54 m_position += zero2 * dt;
58 Vector2 v = ViewportSize / 2f;
59 FlatBatch2D flatBatch2D = PrimitivesRenderer2D.FlatBatch(0, DepthStencilState.None);
60 int count = flatBatch2D.LineVertices.Count;
61 flatBatch2D.QueueLine(v - new Vector2(5f, 0f), v + new Vector2(5f, 0f), 0f, Color.White);
62 flatBatch2D.QueueLine(v - new Vector2(0f, 5f), v + new Vector2(0f, 5f), 0f, Color.White);
63 flatBatch2D.TransformLines(ViewportMatrix, count);
65 }
66 }
67}
Engine.Vector3 Vector3
void TransformLines(Matrix matrix, int start=0, int end=-1)
readonly DynamicArray< VertexPositionColor > LineVertices
static readonly DepthStencilState None
void QueueLine(Vector2 p1, Vector2 p2, float depth, Color color)
static bool IsKeyDown(Key key)
static int Min(int x1, int x2)
BasePerspectiveCamera(GameWidget gameWidget)
void SetupPerspectiveCamera(Vector3 position, Vector3 direction, Vector3 up)
Vector3 ViewPosition
GameWidget GameWidget
Vector3 ViewDirection
override void Activate(Camera previousCamera)
static string PlantParameters
static string AmbientParameters
override void Update(float dt)
override bool IsEntityControlEnabled
PrimitivesRenderer2D PrimitivesRenderer2D
DebugCamera(GameWidget gameWidget)
override bool UsesMovementControls
static Color White
static Matrix CreateFromAxisAngle(Vector3 axis, float angle)
static readonly Vector2 Zero
static Vector3 Transform(Vector3 v, Matrix m)
static Vector3 Cross(Vector3 v1, Vector3 v2)
static Vector3 Normalize(Vector3 v)
static readonly Vector3 Zero
static readonly Vector3 UnitY