add flight assist toggle and corresponding label for it

This commit is contained in:
rsxri 2024-08-15 22:55:44 +01:00
parent c942179ebd
commit b9c05c7ac3
5 changed files with 49 additions and 6 deletions

View file

@ -16,7 +16,6 @@ script = ExtResource("1_dukjm")
position = Vector2(800, 450)
scale = Vector2(0.6, 0.6)
collision_layer = 8
color = 1
type = 1
[node name="Lasers" type="Node" parent="."]

View file

@ -27,3 +27,12 @@ offset_right = 384.0
offset_bottom = 167.0
text = "Health:"
label_settings = ExtResource("2_ns78v")
[node name="FlightAssist" type="Label" parent="."]
layout_mode = 0
offset_left = 19.0
offset_top = 174.0
offset_right = 226.0
offset_bottom = 237.0
text = "FA: ON"
label_settings = ExtResource("2_ns78v")

View file

@ -13,6 +13,8 @@ public partial class game : Node2D
public Label HealthLabel = null;
public Label FlightAssistLabel = null;
public hud h;
@ -24,6 +26,7 @@ public partial class game : Node2D
{
HUD = GetNode<Control>("UI/HUD");
ScoreLabel = GetNode<Label>("UI/HUD/Score");
FlightAssistLabel = GetNode<Label>("UI/HUD/FlightAssist");
//HealthLabel = GetNode<Label>("UI/HUD/Health");
Asteroids = GetNode<Node>("Asteroids");
@ -45,6 +48,11 @@ public partial class game : Node2D
{
GetTree().ReloadCurrentScene();
}
if (Input.IsActionJustPressed("toggle_fa"))
{
UpdateFALabel();
}
}
public void SpawnAsteroid(Vector2 position, int size)
@ -76,6 +84,13 @@ public partial class game : Node2D
HealthLabel.Text = "HEALTH: " + health.ToString();
}
public void UpdateFALabel()
{
// Bit of a hacky implementation I think, but it works.
if (FlightAssistLabel.Text == "FA: OFF"){FlightAssistLabel.Text = "FA: ON";}
else if (FlightAssistLabel.Text == "FA: ON"){FlightAssistLabel.Text = "FA: OFF";}
}
//Signals and Connections
public void OnPlayerLaserShot(Area2D Laser)
{

View file

@ -4,10 +4,15 @@ using System;
public partial class hud : Control
{
public Label Score = new();
public Label FlightAssist = new();
public override void _Ready()
{
Score = GetNode<Label>("Score");
Score.Text = "SCORE: 0";
// Keeping health being initialised in game.cs
FlightAssist = GetNode<Label>("FlightAssist");
FlightAssist.Text = "FA: ON"; // Should be on by default
}
}

View file

@ -9,10 +9,13 @@ public partial class player : ship // Inherits from base ship class
public delegate void HealthUpdateEventHandler(int health);
[Export]
public ShipColor color;
public ShipColor Color;
public Sprite2D Sprite = new Sprite2D();
[Export]
public float FlightAssistValue { get; set; } = 2.5f;
public void GetInput()
{
/*LookAt(GetGlobalMousePosition()); //used for mouse-based rotation and movement
@ -26,10 +29,16 @@ public partial class player : ship // Inherits from base ship class
//move into selection statement for toggling between fa off and on
if(Input.GetAxis("strafe_left", "strafe_right") == 0){
Velocity = Velocity.MoveToward(Vector2.Zero, 2.5f);
Velocity = Velocity.MoveToward(Vector2.Zero, FlightAssistValue);
}
else if(Input.GetAxis("down", "up") == 0){
Velocity = Velocity.MoveToward(Vector2.Zero, 2.5f);
Velocity = Velocity.MoveToward(Vector2.Zero, FlightAssistValue);
}
//FA toggle
if (Input.IsActionJustPressed("toggle_fa"))
{
ToggleFlightAssist();
}
}
@ -39,10 +48,16 @@ public partial class player : ship // Inherits from base ship class
EmitSignal(SignalName.HealthUpdate, Health);
}
public void ToggleFlightAssist()
{
if (FlightAssistValue == 0f){FlightAssistValue = 2.5f;}
else {FlightAssistValue = 0;}
}
public override void _Ready()
{
Sprite = GetNode<Sprite2D>("ShipSprite");
string spritePath = "";
string spritePath = ""; // Have to initialise as "" because of switch statements
switch (type)
{
@ -60,7 +75,7 @@ public partial class player : ship // Inherits from base ship class
}
switch(color)
switch(Color)
{
case ShipColor.RED:
spritePath = spritePath + "ShipRed.png";