diff --git a/Packed-Scenes/player_ship.tscn b/Packed-Scenes/player_ship.tscn index c47c1dc..e33b413 100644 --- a/Packed-Scenes/player_ship.tscn +++ b/Packed-Scenes/player_ship.tscn @@ -87,9 +87,10 @@ normal_enabled = true normal_scale = 2.0 normal_texture = ExtResource("3_2vqaj") -[node name="PlayerShip" type="Node3D"] +[node name="PlayerShip" type="Node3D" node_paths=PackedStringArray("jet")] transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74227e-08, 0, -1, 0, 0, 0) script = ExtResource("1_cpbf1") +jet = NodePath("RigidBody3D/Jet") [node name="RigidBody3D" type="RigidBody3D" parent="."] mass = 100.0 @@ -107,11 +108,14 @@ skeleton = NodePath("") surface_material_override/0 = SubResource("StandardMaterial3D_jlx1o") [node name="Jet" type="Node3D" parent="RigidBody3D"] +visible = false [node name="JetCore" type="Sprite3D" parent="RigidBody3D/Jet"] transform = Transform3D(1, -3.55271e-14, 3.82137e-15, 3.82137e-15, 4.37114e-08, -1, 3.55271e-14, 1, 4.37114e-08, 0, 0.01, -1.392) +shaded = true texture = ExtResource("5_034vf") [node name="JetFlare" type="Sprite3D" parent="RigidBody3D/Jet"] transform = Transform3D(1, -2.84217e-14, 3.82137e-15, 3.82137e-15, 4.37114e-08, -1, 2.84217e-14, 1, 4.37114e-08, 0, -0.01, -1.392) +shaded = true texture = ExtResource("4_87x8f") diff --git a/Scripts/PlayerShip.cs b/Scripts/PlayerShip.cs index cc2858c..7e95eca 100644 --- a/Scripts/PlayerShip.cs +++ b/Scripts/PlayerShip.cs @@ -2,17 +2,38 @@ using Godot; public partial class PlayerShip : Node3D { [Export] private float moveVelocity = 10f; + [Export] private Node3D jet; + private const float jetTimerMax = 0.5f; + private float jetTimer = jetTimerMax; + + private bool jetActive; + private bool JetActive { + get => jetActive; + set { + jetTimer = jetTimerMax; + jetActive = value; + jet.Visible = value; + GD.Print($"JetActive is {value}"); + } + } public override void _Ready() => Position = new(0, 0, 5); public override void _Process(double delta) { HandleMovement(delta); + if (JetActive) { + jetTimer -= (float)delta; + // GD.Print($"{jetTimer}/{jetTimerMax}"); + } + if (jetTimer < 0) JetActive = false; } private void HandleMovement(double delta) { Vector3 moveDir = new(); Vector3 rotDir = new(0,180,0); + if (Input.IsKeyPressed(Key.A) || Input.IsKeyPressed(Key.D) || Input.IsKeyPressed(Key.W) || Input.IsKeyPressed(Key.S)) JetActive = true; + if (Input.IsKeyPressed(Key.A)) { moveDir.X -= moveVelocity * (float)delta; rotDir.Z = -30f;