small racing game im working on
| -rw-r--r-- | classes/ghost_data.gd | 5 | ||||
| -rw-r--r-- | classes/timer.gd | 6 | ||||
| -rw-r--r-- | race.gd | 31 | ||||
| -rw-r--r-- | scenes/race_high.tscn | 4 | ||||
| -rw-r--r-- | scenes/race_highlevel.gd | 18 | ||||
| -rw-r--r-- | start.tscn | 2 | ||||
| -rw-r--r-- | ui/assets/button_focus.stylebox | bin | 0 -> 452 bytes | |||
| -rw-r--r-- | ui/assets/wide_button_focus.stylebox | bin | 0 -> 465 bytes | |||
| -rw-r--r-- | ui/diff.gd | 14 | ||||
| -rw-r--r-- | ui/finish.gd | 30 | ||||
| -rw-r--r-- | ui/finish.tscn | 147 | ||||
| -rw-r--r-- | ui/hud.tscn | 2 | ||||
| -rw-r--r-- | ui/laps.gd | 3 | ||||
| -rw-r--r-- | ui/splits/difference.gd | 25 | ||||
| -rw-r--r-- | ui/splits/gains.tres | 2 | ||||
| -rw-r--r-- | ui/splits/splits.gd | 4 | ||||
| -rw-r--r-- | ui/splits/splits.tscn | 25 | ||||
| -rw-r--r-- | ui/theme.tres | 9 | ||||
| -rw-r--r-- | ui/ubuntu.tres | 1 |
19 files changed, 278 insertions, 50 deletions
diff --git a/classes/ghost_data.gd b/classes/ghost_data.gd index 59d1e9d..1a5e9cc 100644 --- a/classes/ghost_data.gd +++ b/classes/ghost_data.gd @@ -19,7 +19,7 @@ func load_snap(i: int) -> Array: return [positions[i], rotations[i], steering[i]] func save(path: String) -> void: - _save_file(path, {checkpoints = checkpoints, positions = positions, rotations = rotations, steering = steering, time = time, snaps = snaps}) + GhostData._save_file(path, {checkpoints = checkpoints, positions = positions, rotations = rotations, steering = steering, time = time, snaps = snaps}) func _init(num_checkpoints := 0, laps := 0) -> void: for i in laps: @@ -38,6 +38,7 @@ func clear() -> void: snaps = 0 func collect(lap: int, cp: int, now: float) -> void: + now = snappedf(now, .001) # 3dec precision if lap == len(checkpoints) - 1 && cp == -1: checkpoints[lap][cp] = now time = now @@ -48,7 +49,7 @@ func has_collected(lap: int, cp: int) -> bool: return checkpoints[lap][cp] != -1 func get_time(lap: int, cp: int) -> float: - return checkpoints[lap][cp] + return snappedf(checkpoints[lap][cp], .001) # ive noticed compression can add .00000157 so we snap it back down static func from_d(d: Dictionary) -> GhostData: var obj := GhostData.new() diff --git a/classes/timer.gd b/classes/timer.gd index a193c7f..25231c9 100644 --- a/classes/timer.gd +++ b/classes/timer.gd @@ -19,10 +19,14 @@ func reset() -> void: func now() -> float: return elapsed_time -## format a number of seconds into m:s.ms +## format a number of seconds into m:ss.ms with padding static func format(time: float) -> String: return "%01d:%02d.%02d" % [time / 60, fmod(time, 60), fmod(time * 1000, 100)] +## format a number of seconds into mm:ss.msc without padding ( i really need to test these ) +static func format_precise(time: float) -> String: + return "%02d:%02d:%03d" % [time / 60, fmod(time, 60), fmod(time * 1000, 1000)] + func fmt_now() -> String: return GameTimer.format(elapsed_time) @@ -23,9 +23,9 @@ const saves := "user://%s.ghost" signal next_lap signal created_car(car: Car) signal created_ghost(ghost: GhostCar) -signal finished +signal finished(time: float, prev_time: float) signal split(time: float, prev_time: float) -signal reset +signal did_reset func _init(t: TrackResource, _car_scene, _ghost_scene, _track_loader_scene) -> void: car_scene = _car_scene @@ -80,15 +80,18 @@ func _ready() -> void: func _input(event: InputEvent) -> void: if event.is_action("reset") and playing: - playing = false - if best_time_data: - if ghost: - reset_ghost() - await reset_car() - set_physics_process(false) - data.clear() - timer.reset() - reset.emit() + reset() + +func reset() -> void: + playing = false + if best_time_data: + if ghost: + reset_ghost() + await reset_car() + set_physics_process(false) + data.clear() + timer.reset() + did_reset.emit() func connect_checkpoints() -> void: for i in len(track.checkpoints): @@ -104,13 +107,17 @@ func passed_finish() -> void: return collect(-1) if track_res.laps - 1 == current_lap: - finished.emit() playing = false print("finished") timer.stop() if not best_time_data or data.time < best_time_data.time: print("new pb!") + finished.emit(data.time, -1) data.save(saves % track_res.name) + best_time_data = data + else: + finished.emit(data.time, best_time_data.time) + data = GhostData.new(track_res.checkpoints.size(), track_res.laps) else: current_lap += 1 next_lap.emit() diff --git a/scenes/race_high.tscn b/scenes/race_high.tscn index 798b6b0..4bd48fb 100644 --- a/scenes/race_high.tscn +++ b/scenes/race_high.tscn @@ -1,8 +1,9 @@ -[gd_scene load_steps=7 format=3 uid="uid://dhiei0g5tr74s"] +[gd_scene load_steps=8 format=3 uid="uid://dhiei0g5tr74s"] [ext_resource type="Script" path="res://scenes/race_highlevel.gd" id="1_q8hua"] [ext_resource type="PackedScene" uid="uid://vok7fdcyec68" path="res://ui/hud.tscn" id="3_xp6f0"] [ext_resource type="PackedScene" uid="uid://c157wew5y33bo" path="res://assets/cars/kenney_sedan/sedan.tscn" id="4_0jpx1"] +[ext_resource type="PackedScene" uid="uid://cr1mgp6bgxh64" path="res://ui/finish.tscn" id="4_c1jl5"] [ext_resource type="PackedScene" uid="uid://clpo7rt0vkudy" path="res://ui/countdown.tscn" id="4_llox4"] [ext_resource type="PackedScene" uid="uid://bbj2agqv581cd" path="res://assets/cars/kenney_sedan/sedan.blend" id="4_waubg"] [ext_resource type="PackedScene" uid="uid://clw61td2wh84w" path="res://scenes/track.tscn" id="5_8mqbt"] @@ -11,6 +12,7 @@ script = ExtResource("1_q8hua") hud_scene = ExtResource("3_xp6f0") countdown_scene = ExtResource("4_llox4") +finish_scene = ExtResource("4_c1jl5") car_scene = ExtResource("4_0jpx1") ghost_scene = ExtResource("4_waubg") track_loader_scene = ExtResource("5_8mqbt") diff --git a/scenes/race_highlevel.gd b/scenes/race_highlevel.gd index ba14ac3..aefead5 100644 --- a/scenes/race_highlevel.gd +++ b/scenes/race_highlevel.gd @@ -2,8 +2,10 @@ extends Splitscreen @export var hud_scene: PackedScene @export var countdown_scene: PackedScene +@export var finish_scene: PackedScene ## For lowlevel race +@export_group("racing stuff") @export var car_scene: PackedScene @export var ghost_scene: PackedScene @export var track_loader_scene: PackedScene @@ -13,13 +15,14 @@ var huds: Array[HUD] func _ready() -> void: race = Race.new(Globals.playing, car_scene, ghost_scene, track_loader_scene) - race.reset.connect(count_in) + race.did_reset.connect(count_in) add_child(race) add_player() super() # cant call it join because of overriding and stuff func add_player() -> void: + await get_tree().physics_frame var c_cam := CarCamera.new(race.car) var i_cam := IntroCam.new(Globals.playing, c_cam) var v := join() @@ -32,7 +35,18 @@ func add_player() -> void: race.next_lap.connect(hud.laps.increment) huds.append(hud) i_cam.finished.connect(count_in) - race.reset.connect(c_cam.reset) + race.did_reset.connect(c_cam.reset) + race.did_reset.connect(hud.laps.reset) + race.finished.connect(func(t: float, p_t: float): +# get_tree().paussed = true + var finish: FinishUI = finish_scene.instantiate() + hud.add_child(finish) + finish.set_time(t, p_t) + finish.retry.connect(func(): + race.reset() + finish.queue_free() + ) + ) func count_in(): var countdown := countdown_scene.instantiate() @@ -1,6 +1,6 @@ [gd_scene load_steps=7 format=3 uid="uid://bvfqaoqjsxj73"] -[ext_resource type="Theme" uid="uid://ch2uo5qd8ubx6" path="res://ui/theme.tres" id="1_gm0ws"] +[ext_resource type="Theme" uid="uid://ecnruuyrc8m" path="res://ui/theme.tres" id="1_gm0ws"] [ext_resource type="Script" path="res://ui/tracks.gd" id="2_po2ce"] [ext_resource type="Resource" uid="uid://crye0ijvmtsyb" path="res://tracks/multilap_test.tres" id="3_0yjp1"] [ext_resource type="Resource" uid="uid://de46bcu1ivmtq" path="res://tracks/test.tres" id="4_3xqvr"] diff --git a/ui/assets/button_focus.stylebox b/ui/assets/button_focus.stylebox Binary files differnew file mode 100644 index 0000000..eb4aa4f --- /dev/null +++ b/ui/assets/button_focus.stylebox diff --git a/ui/assets/wide_button_focus.stylebox b/ui/assets/wide_button_focus.stylebox Binary files differnew file mode 100644 index 0000000..e7200a4 --- /dev/null +++ b/ui/assets/wide_button_focus.stylebox diff --git a/ui/diff.gd b/ui/diff.gd new file mode 100644 index 0000000..e394ccc --- /dev/null +++ b/ui/diff.gd @@ -0,0 +1,14 @@ +extends SplitsDifference + +@export var gain_color: Color +@export var loss_color: Color + +func style(d: Change) -> void: + match d: + Change.LOSS: label_settings.font_color = loss_color + Change.GAIN: label_settings.font_color = gain_color + Change.EQUAL: + hide() + +func format(t: float) -> String: + return GameTimer.format_precise(t) diff --git a/ui/finish.gd b/ui/finish.gd new file mode 100644 index 0000000..b34ea64 --- /dev/null +++ b/ui/finish.gd @@ -0,0 +1,30 @@ +extends ColorRect +class_name FinishUI + +@export var diff: SplitsDifference +@export var time_: Label +@export var flag: Label +@export var focus: Control + +signal retry +signal next +signal quit +signal difference(diff: SplitsDifference.Change) + +func set_time(time: float, prev_time: float): + time_.text = GameTimer.format_precise(time) + if prev_time < 0 or SplitsDifference.diff(time, prev_time) == SplitsDifference.Change.EQUAL: + diff.hide() + flag.text = "" + flag.vertical_alignment = VERTICAL_ALIGNMENT_TOP + else: + flag.vertical_alignment = VERTICAL_ALIGNMENT_BOTTOM + var d := SplitsDifference.diff(time, prev_time); + match d: + SplitsDifference.Change.LOSS: flag.text = "" + SplitsDifference.Change.GAIN: flag.text = "" + diff.update(time, prev_time) + difference.emit(d) + +func _ready() -> void: + focus.grab_focus() diff --git a/ui/finish.tscn b/ui/finish.tscn new file mode 100644 index 0000000..0af021a --- /dev/null +++ b/ui/finish.tscn @@ -0,0 +1,147 @@ +[gd_scene load_steps=12 format=3 uid="uid://cr1mgp6bgxh64"] + +[ext_resource type="Theme" uid="uid://ecnruuyrc8m" path="res://ui/theme.tres" id="1_aykd4"] +[ext_resource type="Script" path="res://ui/finish.gd" id="1_crs2w"] +[ext_resource type="Script" path="res://ui/diff.gd" id="2_gtres"] +[ext_resource type="StyleBox" uid="uid://bxi4jeh5lf468" path="res://ui/assets/wide_button_focus.stylebox" id="4_dck0l"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_bgqa0"] +bg_color = Color(0.027451, 0.211765, 0.258824, 1) +border_width_left = 10 +border_width_top = 10 +border_width_right = 10 +border_width_bottom = 10 +border_color = Color(0.513726, 0.580392, 0.588235, 1) +corner_radius_top_left = 150 +corner_radius_top_right = 150 +corner_radius_bottom_right = 150 +corner_radius_bottom_left = 150 +corner_detail = 18 +anti_aliasing_size = 1.0 + +[sub_resource type="LabelSettings" id="LabelSettings_f3a8x"] +line_spacing = 0.0 +font_size = 200 +font_color = Color(0.933333, 0.909804, 0.835294, 1) +outline_size = 25 +outline_color = Color(0.25098, 0.25098, 0.25098, 1) + +[sub_resource type="SystemFont" id="SystemFont_0mxmp"] +font_names = PackedStringArray("Cascadia Code") +font_weight = 700 +oversampling = 5.0 + +[sub_resource type="LabelSettings" id="LabelSettings_m62vt"] +font = SubResource("SystemFont_0mxmp") +font_size = 100 +font_color = Color(0.992157, 0.964706, 0.890196, 1) + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_22wem"] +content_margin_left = 250.0 + +[sub_resource type="LabelSettings" id="LabelSettings_irfee"] +font = SubResource("SystemFont_0mxmp") +font_size = 50 +font_color = Color(0.921569, 0.32549, 0.317647, 1) + +[sub_resource type="GDScript" id="GDScript_ihn3u"] +resource_name = "retry_button" +script/source = "extends Button + +func _on_finish_difference(diff: SplitsDifference.Change) -> void: + match diff: + SplitsDifference.Change.GAIN: text = \"play again\" + SplitsDifference.Change.LOSS: text = \"try again\" +" + +[node name="finish" type="ColorRect" node_paths=PackedStringArray("diff", "time_", "flag", "focus")] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("1_aykd4") +color = Color(0.121569, 0.121569, 0.121569, 0.709804) +script = ExtResource("1_crs2w") +diff = NodePath("center/panel/container/splits/diff") +time_ = NodePath("center/panel/container/splits/hcontainer/time") +flag = NodePath("center/panel/container/splits/hcontainer/flag") +focus = NodePath("center/panel/container/buttons/retry") + +[node name="center" type="CenterContainer" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="panel" type="PanelContainer" parent="center"] +custom_minimum_size = Vector2(1280, 720) +layout_mode = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_bgqa0") + +[node name="container" type="VBoxContainer" parent="center/panel"] +layout_mode = 2 + +[node name="splits" type="VBoxContainer" parent="center/panel/container"] +layout_mode = 2 +size_flags_horizontal = 4 +theme_override_constants/separation = -70 + +[node name="hcontainer" type="HBoxContainer" parent="center/panel/container/splits"] +custom_minimum_size = Vector2(0, 240) +layout_mode = 2 +theme_override_constants/separation = 50 +alignment = 1 + +[node name="flag" type="Label" parent="center/panel/container/splits/hcontainer"] +layout_mode = 2 +size_flags_vertical = 1 +text = "" +label_settings = SubResource("LabelSettings_f3a8x") +horizontal_alignment = 1 +vertical_alignment = 2 + +[node name="time" type="Label" parent="center/panel/container/splits/hcontainer"] +layout_mode = 2 +text = "1:24.187" +label_settings = SubResource("LabelSettings_m62vt") + +[node name="diff" type="Label" parent="center/panel/container/splits"] +layout_mode = 2 +theme_override_styles/normal = SubResource("StyleBoxEmpty_22wem") +text = "+0:00.125" +label_settings = SubResource("LabelSettings_irfee") +script = ExtResource("2_gtres") +gain_color = Color(0.521569, 0.6, 0, 1) +loss_color = Color(0.921569, 0.32549, 0.317647, 1) + +[node name="spacer" type="Control" parent="center/panel/container"] +custom_minimum_size = Vector2(0, 70) +layout_mode = 2 + +[node name="buttons" type="VBoxContainer" parent="center/panel/container"] +layout_mode = 2 +theme_override_constants/separation = 0 + +[node name="retry" type="Button" parent="center/panel/container/buttons"] +layout_mode = 2 +theme_override_styles/focus = ExtResource("4_dck0l") +text = "play again" +script = SubResource("GDScript_ihn3u") + +[node name="next" type="Button" parent="center/panel/container/buttons"] +layout_mode = 2 +theme_override_styles/focus = ExtResource("4_dck0l") +text = "next map" + +[node name="quit" type="Button" parent="center/panel/container/buttons"] +layout_mode = 2 +theme_override_styles/focus = ExtResource("4_dck0l") +text = "exit" + +[connection signal="difference" from="." to="center/panel/container/buttons/retry" method="_on_finish_difference"] +[connection signal="pressed" from="center/panel/container/buttons/retry" to="." method="emit_signal" binds= [&"retry"]] +[connection signal="pressed" from="center/panel/container/buttons/next" to="." method="emit_signal" binds= [&"next"]] +[connection signal="pressed" from="center/panel/container/buttons/quit" to="." method="emit_signal" binds= [&"quit"]] diff --git a/ui/hud.tscn b/ui/hud.tscn index d453c77..5b8387c 100644 --- a/ui/hud.tscn +++ b/ui/hud.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=17 format=3 uid="uid://vok7fdcyec68"] -[ext_resource type="Theme" uid="uid://ch2uo5qd8ubx6" path="res://ui/theme.tres" id="1_ie2j2"] +[ext_resource type="Theme" uid="uid://ecnruuyrc8m" path="res://ui/theme.tres" id="1_ie2j2"] [ext_resource type="Script" path="res://ui/hud.gd" id="1_sfhpc"] [ext_resource type="Script" path="res://ui/speedometer.gd" id="2_cvi37"] [ext_resource type="Script" path="res://ui/timer.gd" id="3_poksb"] @@ -14,3 +14,6 @@ func assigned(_car, _ghost, _timer, _track: TrackLoader) -> void: track = _track visible = track.track.laps > 1 increment() + +func reset() -> void: + lap = 1 diff --git a/ui/splits/difference.gd b/ui/splits/difference.gd index c9d33eb..39433d0 100644 --- a/ui/splits/difference.gd +++ b/ui/splits/difference.gd @@ -1,32 +1,35 @@ -extends PanelContainer +extends Label +class_name SplitsDifference @export var gain_style: StyleBox @export var loss_style: StyleBox @export var neutral_style: StyleBox -@export var label: Label enum Change { GAIN, LOSS, EQUAL } +func format(t: float) -> String: + return GameTimer.format(t) + func update(time: float, prev_time: float) -> void: if prev_time < 0: # no time set hide() return else: show() # shouldnt be needed but just to be carefull - var change := diff(time, prev_time) + var change := SplitsDifference.diff(time, prev_time) style(change) match change: - Change.LOSS: label.text = "+" + GameTimer.format(time - prev_time) - Change.GAIN: label.text = "-" + GameTimer.format(prev_time - time) - Change.EQUAL: label.text = "0:00.00" + Change.LOSS: text = "+" + format(time - prev_time) + Change.GAIN: text = "-" + format(prev_time - time) + Change.EQUAL: text = format(0) -func diff(t1: float, t2: float) -> int: +static func diff(t1: float, t2: float) -> int: if is_equal_approx(t1, t2): return Change.EQUAL return Change.GAIN if t1 < t2 else Change.LOSS -func style(d: int) -> void: +func style(d: Change) -> void: match d: - Change.LOSS: add_theme_stylebox_override(&"panel", loss_style) - Change.GAIN: add_theme_stylebox_override(&"panel", gain_style) - Change.EQUAL: add_theme_stylebox_override(&"panel", neutral_style) + Change.LOSS: add_theme_stylebox_override(&"normal", loss_style) + Change.GAIN: add_theme_stylebox_override(&"normal", gain_style) + Change.EQUAL: add_theme_stylebox_override(&"normal", neutral_style) diff --git a/ui/splits/gains.tres b/ui/splits/gains.tres index 9a74265..b9ac934 100644 --- a/ui/splits/gains.tres +++ b/ui/splits/gains.tres @@ -3,4 +3,4 @@ [resource] content_margin_left = 5.0 content_margin_right = 5.0 -bg_color = Color(0.458824, 0.545098, 1, 0.886275) +bg_color = Color(0.14902, 0.545098, 0.823529, 0.886275) diff --git a/ui/splits/splits.gd b/ui/splits/splits.gd index 8a160c6..0a8d9be 100644 --- a/ui/splits/splits.gd +++ b/ui/splits/splits.gd @@ -1,7 +1,7 @@ extends VBoxContainer class_name Splits -@export var diff: PanelContainer +@export var diff: SplitsDifference @export var current: Label var timer: SceneTreeTimer @@ -11,4 +11,4 @@ func update(time: float, prev_time: float) -> void: diff.update(time, prev_time) current.text = GameTimer.format(time) timer = get_tree().create_timer(5) - timer.timeout.connect(hide)
\ No newline at end of file + timer.timeout.connect(hide) diff --git a/ui/splits/splits.tscn b/ui/splits/splits.tscn index e7237ee..556f230 100644 --- a/ui/splits/splits.tscn +++ b/ui/splits/splits.tscn @@ -19,31 +19,26 @@ grow_vertical = 2 theme = ExtResource("1_m5q5h") script = ExtResource("2_2frki") diff = NodePath("Difference") -current = NodePath("Current/Label") +current = NodePath("Current") -[node name="Current" type="PanelContainer" parent="."] +[node name="Current" type="Label" parent="."] +custom_minimum_size = Vector2(170, 0) layout_mode = 2 size_flags_horizontal = 4 - -[node name="Label" type="Label" parent="Current"] -custom_minimum_size = Vector2(160, 0) -layout_mode = 2 +theme_override_styles/normal = ExtResource("4_ebhpa") text = "0:00.00" horizontal_alignment = 2 vertical_alignment = 1 -[node name="Difference" type="PanelContainer" parent="." node_paths=PackedStringArray("label")] +[node name="Difference" type="Label" parent="."] +custom_minimum_size = Vector2(170, 0) layout_mode = 2 size_flags_horizontal = 4 +theme_override_styles/normal = ExtResource("4_ebhpa") +text = "+0:00.00" +horizontal_alignment = 2 +vertical_alignment = 1 script = ExtResource("3_4w6ms") gain_style = ExtResource("4_uicx0") loss_style = ExtResource("4_5hoie") neutral_style = ExtResource("4_ebhpa") -label = NodePath("Label") - -[node name="Label" type="Label" parent="Difference"] -custom_minimum_size = Vector2(160, 0) -layout_mode = 2 -text = "+0:00.00" -horizontal_alignment = 2 -vertical_alignment = 1 diff --git a/ui/theme.tres b/ui/theme.tres index 5c40ab7..07f6a92 100644 --- a/ui/theme.tres +++ b/ui/theme.tres @@ -1,12 +1,19 @@ -[gd_resource type="Theme" load_steps=4 format=3 uid="uid://ch2uo5qd8ubx6"] +[gd_resource type="Theme" load_steps=5 format=3 uid="uid://ecnruuyrc8m"] [ext_resource type="SystemFont" uid="uid://xriuk0v4f6wj" path="res://ui/ubuntu.tres" id="1_37cf0"] [ext_resource type="StyleBox" uid="uid://cdth5nc7lbx1v" path="res://ui/panel_skewed.tres" id="1_g8q83"] +[ext_resource type="StyleBox" uid="uid://bkxlhm4hc5lco" path="res://ui/assets/button_focus.stylebox" id="1_t7nt0"] [ext_resource type="FontVariation" uid="uid://ba8ab6dti2fvo" path="res://ui/boldsans.tres" id="3_fpgf0"] [resource] default_font = ExtResource("1_37cf0") default_font_size = 76 +Button/colors/font_color = Color(0.933333, 0.909804, 0.835294, 1) +Button/colors/font_focus_color = Color(0.992157, 0.964706, 0.890196, 1) +Button/colors/font_hover_color = Color(0.992157, 0.964706, 0.890196, 1) +Button/colors/font_hover_pressed_color = Color(0.992157, 0.964706, 0.890196, 1) +Button/colors/font_pressed_color = Color(0.576471, 0.631373, 0.631373, 1) +Button/styles/focus = ExtResource("1_t7nt0") Label/font_sizes/font_size = 76 Label/fonts/font = ExtResource("1_37cf0") PanelContainer/styles/panel = ExtResource("1_g8q83") diff --git a/ui/ubuntu.tres b/ui/ubuntu.tres index 99b8a80..1640c7b 100644 --- a/ui/ubuntu.tres +++ b/ui/ubuntu.tres @@ -2,3 +2,4 @@ [resource] font_names = PackedStringArray("UbuntuMono Nerd Font") +oversampling = 3.0 |