diff --git a/player/gui.gd b/player/gui.gd index 59c5c71..8993784 100644 --- a/player/gui.gd +++ b/player/gui.gd @@ -2,7 +2,9 @@ extends MarginContainer onready var rpm_needle = $HBoxContainer/RPMGauge/RPMNeedle +onready var rpm_label = $HBoxContainer/RPMGauge/Panel/RPMLabel onready var speed_needle = $HBoxContainer/SpeedGauge/SpeedNeedle +onready var speed_label = $HBoxContainer/SpeedGauge/Panel/SpeedLabel onready var gear_label = $HBoxContainer/GearLabel var min_rotation = -85 @@ -11,11 +13,13 @@ var max_rotation = 75 func _get_rotation(percent: float) -> float: return min_rotation + (max_rotation - min_rotation) * percent -func update_speed(speed_percent: float) -> void: +func update_speed(speed: int, speed_percent: float) -> void: speed_needle.rect_rotation = _get_rotation(speed_percent) + speed_label.text = str(speed) -func update_rpm(rpm_percent: float) -> void: +func update_rpm(rpm: int, rpm_percent: float) -> void: rpm_needle.rect_rotation = _get_rotation(rpm_percent) + rpm_label.text = str(rpm) func update_gear(gear: int) -> void: if gear == -1: diff --git a/player/gui.tscn b/player/gui.tscn index f40ef24..dc9c391 100644 --- a/player/gui.tscn +++ b/player/gui.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=7 format=2] +[gd_scene load_steps=9 format=2] [ext_resource path="res://assets/gauge.png" type="Texture" id=1] [ext_resource path="res://assets/needle.png" type="Texture" id=2] @@ -7,6 +7,13 @@ [sub_resource type="CanvasItemMaterial" id=3] +[sub_resource type="StyleBoxFlat" id=4] +bg_color = Color( 0.576471, 0.576471, 0.576471, 0.392157 ) + +[sub_resource type="DynamicFont" id=5] +size = 14 +font_data = ExtResource( 4 ) + [sub_resource type="DynamicFont" id=1] size = 48 font_data = ExtResource( 4 ) @@ -53,6 +60,30 @@ __meta__ = { "_edit_use_anchors_": false } +[node name="Panel" type="Panel" parent="HBoxContainer/RPMGauge"] +anchor_left = 0.3 +anchor_top = 0.6 +anchor_right = 0.7 +anchor_bottom = 0.8 +custom_styles/panel = SubResource( 4 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="RPMLabel" type="Label" parent="HBoxContainer/RPMGauge/Panel"] +anchor_left = 0.1 +anchor_top = 0.1 +anchor_right = 0.9 +anchor_bottom = 0.6 +size_flags_vertical = 1 +custom_colors/font_color = Color( 0.282353, 0.0196078, 0.0196078, 1 ) +custom_fonts/font = SubResource( 5 ) +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + [node name="SpeedGauge" type="TextureRect" parent="HBoxContainer"] margin_left = 148.0 margin_right = 276.0 @@ -72,6 +103,30 @@ __meta__ = { "_edit_use_anchors_": false } +[node name="Panel" type="Panel" parent="HBoxContainer/SpeedGauge"] +anchor_left = 0.3 +anchor_top = 0.6 +anchor_right = 0.7 +anchor_bottom = 0.8 +custom_styles/panel = SubResource( 4 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="SpeedLabel" type="Label" parent="HBoxContainer/SpeedGauge/Panel"] +anchor_left = 0.1 +anchor_top = 0.1 +anchor_right = 0.9 +anchor_bottom = 0.6 +size_flags_vertical = 1 +custom_colors/font_color = Color( 0.282353, 0.0196078, 0.0196078, 1 ) +custom_fonts/font = SubResource( 5 ) +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + [node name="GearLabel" type="Label" parent="HBoxContainer"] margin_left = 296.0 margin_top = 37.0 diff --git a/vehicles/buggy.gd b/vehicles/buggy.gd index 94fd12b..7d4f34a 100644 --- a/vehicles/buggy.gd +++ b/vehicles/buggy.gd @@ -1,7 +1,7 @@ extends VehicleBody -signal speed_updated(speed_percent) -signal rpm_updated(rpm_percent) +signal speed_updated(speed_kph, speed_percent) +signal rpm_updated(rpm, rpm_percent) signal gear_updated(gear) export (float) var MAX_STEER_ANGLE = 25 @@ -139,8 +139,8 @@ func _physics_process(delta: float): rlwheel.brake = handbrake * MAX_BRAKE_FORCE / 2 var speed = wheel_rpm * 2.0 * PI * rrwheel.wheel_radius / 60.0 * 3600.0 / 1000.0 - emit_signal("speed_updated", speed / EXPECTED_MAX_SPEED) - emit_signal("rpm_updated", rpm_factor) + emit_signal("speed_updated", speed, speed / EXPECTED_MAX_SPEED) + emit_signal("rpm_updated", rpm, rpm_factor) var steering_input = Input.get_action_strength("steer_left") - Input.get_action_strength("steer_right") if abs(steering_input) < 0.05: