My entry to Ludum Dare 53
1namespace LD53;
2
3class PlayerController : Component
4{
5 // Texture t = new("Images/Boat/boat_00.png");
6 Transform transform;
7 BoatRenderer br;
8 public int Gold = 0;
9 MainScene main;
10
11 List<Vector3> v = new();
12
13 public override void Awake()
14 {
15 transform = Get<Transform>();
16 br = Get<BoatRenderer>();
17 main = SceneHandler.Get<MainScene>();
18 }
19
20 public override void Sleep()
21 {
22
23 }
24
25 public override void Update()
26 {
27 Debug.RegisterCommand("getpos", (args) => {
28 Debug.Log(transform.Position);
29 });
30
31 float mSpeed = 70; // 70
32
33 if(Keyboard.Down(Key.A))
34 {
35 transform.Angle -= 100f * DeltaTime;
36 }
37
38 if(Keyboard.Down(Key.D))
39 {
40 transform.Angle += 100f * DeltaTime;
41 }
42
43 if(Keyboard.Down(Key.W))
44 {
45 transform.Position += Helpers.LengthDir(mSpeed * DeltaTime, transform.Angle);
46
47 Random rand = new();
48 if(rand.NextDouble() > 0.98)
49 br.v.Add(new Vector3(transform.Position + Helpers.LengthDir(10, transform.Angle + 180 + ((rand.NextDouble() - 0.5) * 50)), 1));
50 }
51
52 if(Mouse.Pressed(MB.Left))
53 {
54 Get<BoatShooterController>().Shoot();
55 }
56
57 if(transform.Position.X < -3200 || transform.Position.X > 3200 || transform.Position.Y < -3200 || transform.Position.Y > 3200)
58 {
59 SceneHandler.Unload("Main");
60 SceneHandler.Load("LostAtSea");
61 }
62
63 for(var j = 0; j < main.Map.Count; j++)
64 {
65 foreach(var i in main.Islands[main.Map[j].Item1])
66 {
67 if(Helpers.PointInside(transform.Position, new Vector4(i.Key.X * 16 - main.Map[j].Item2.X, i.Key.Y * 16 - main.Map[j].Item2.Y, 16, 16)))
68 {
69 transform.Position += Helpers.LengthDir(mSpeed * DeltaTime, transform.Angle + 180);
70 }
71 }
72 }
73 }
74}