Skip to content

Commit b1807c9

Browse files
committed
Make the user interface more dynamic
1 parent 4a2abac commit b1807c9

20 files changed

+259
-13
lines changed

Externals/Fonts/Comfortaa-Bold.ttf

109 KB
Binary file not shown.
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
[remap]
2+
3+
importer="font_data_dynamic"
4+
type="FontFile"
5+
uid="uid://bprkrro62xk4o"
6+
path="res://.godot/imported/Comfortaa-Bold.ttf-5378a35f13b9aae505ac74f792d4a0af.fontdata"
7+
8+
[deps]
9+
10+
source_file="res://Externals/Fonts/Comfortaa-Bold.ttf"
11+
dest_files=["res://.godot/imported/Comfortaa-Bold.ttf-5378a35f13b9aae505ac74f792d4a0af.fontdata"]
12+
13+
[params]
14+
15+
Rendering=null
16+
antialiasing=1
17+
generate_mipmaps=false
18+
multichannel_signed_distance_field=false
19+
msdf_pixel_range=8
20+
msdf_size=48
21+
allow_system_fallback=true
22+
force_autohinter=false
23+
hinting=1
24+
subpixel_positioning=1
25+
oversampling=0.0
26+
Fallbacks=null
27+
fallbacks=[]
28+
Compress=null
29+
compress=true
30+
preload=[]
31+
language_support={}
32+
script_support={}
33+
opentype_features={}
Binary file not shown.
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
[remap]
2+
3+
importer="font_data_dynamic"
4+
type="FontFile"
5+
uid="uid://cwh8mrj7syb3g"
6+
path="res://.godot/imported/Comfortaa-VariableFont_wght.ttf-ab1dbac43bfdcc6e678403faad43ab5e.fontdata"
7+
8+
[deps]
9+
10+
source_file="res://Externals/Fonts/Comfortaa-VariableFont_wght.ttf"
11+
dest_files=["res://.godot/imported/Comfortaa-VariableFont_wght.ttf-ab1dbac43bfdcc6e678403faad43ab5e.fontdata"]
12+
13+
[params]
14+
15+
Rendering=null
16+
antialiasing=1
17+
generate_mipmaps=false
18+
multichannel_signed_distance_field=false
19+
msdf_pixel_range=8
20+
msdf_size=48
21+
allow_system_fallback=true
22+
force_autohinter=false
23+
hinting=1
24+
subpixel_positioning=1
25+
oversampling=0.0
26+
Fallbacks=null
27+
fallbacks=[]
28+
Compress=null
29+
compress=true
30+
preload=[]
31+
language_support={}
32+
script_support={}
33+
opentype_features={}
Binary file not shown.
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
[remap]
2+
3+
importer="font_data_dynamic"
4+
type="FontFile"
5+
uid="uid://bebhsp2setr5"
6+
path="res://.godot/imported/Exo2-Italic-VariableFont_wght.ttf-4443fca0e1a49f67fcb2b7a7c72706a3.fontdata"
7+
8+
[deps]
9+
10+
source_file="res://Externals/Fonts/Exo2-Italic-VariableFont_wght.ttf"
11+
dest_files=["res://.godot/imported/Exo2-Italic-VariableFont_wght.ttf-4443fca0e1a49f67fcb2b7a7c72706a3.fontdata"]
12+
13+
[params]
14+
15+
Rendering=null
16+
antialiasing=1
17+
generate_mipmaps=false
18+
multichannel_signed_distance_field=false
19+
msdf_pixel_range=8
20+
msdf_size=48
21+
allow_system_fallback=true
22+
force_autohinter=false
23+
hinting=1
24+
subpixel_positioning=1
25+
oversampling=0.0
26+
Fallbacks=null
27+
fallbacks=[]
28+
Compress=null
29+
compress=true
30+
preload=[]
31+
language_support={}
32+
script_support={}
33+
opentype_features={}
14.3 KB
Binary file not shown.
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
[remap]
2+
3+
importer="font_data_dynamic"
4+
type="FontFile"
5+
uid="uid://crn2pdiqsgv68"
6+
path="res://.godot/imported/SpaceMission-rgyw9.otf-0dc62cc0b5b66a5b5224b60f63edeac4.fontdata"
7+
8+
[deps]
9+
10+
source_file="res://Externals/Fonts/SpaceMission-rgyw9.otf"
11+
dest_files=["res://.godot/imported/SpaceMission-rgyw9.otf-0dc62cc0b5b66a5b5224b60f63edeac4.fontdata"]
12+
13+
[params]
14+
15+
Rendering=null
16+
antialiasing=1
17+
generate_mipmaps=false
18+
multichannel_signed_distance_field=false
19+
msdf_pixel_range=8
20+
msdf_size=48
21+
allow_system_fallback=true
22+
force_autohinter=false
23+
hinting=1
24+
subpixel_positioning=1
25+
oversampling=0.0
26+
Fallbacks=null
27+
fallbacks=[]
28+
Compress=null
29+
compress=true
30+
preload=[]
31+
language_support={}
32+
script_support={}
33+
opentype_features={}
32.6 KB
Binary file not shown.
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
[remap]
2+
3+
importer="font_data_dynamic"
4+
type="FontFile"
5+
uid="uid://6rb6ls67ssh0"
6+
path="res://.godot/imported/TechnoRaceItalic-eZRWe.otf-211c4fa5af4ad00900e3db648b098816.fontdata"
7+
8+
[deps]
9+
10+
source_file="res://Externals/Fonts/TechnoRaceItalic-eZRWe.otf"
11+
dest_files=["res://.godot/imported/TechnoRaceItalic-eZRWe.otf-211c4fa5af4ad00900e3db648b098816.fontdata"]
12+
13+
[params]
14+
15+
Rendering=null
16+
antialiasing=1
17+
generate_mipmaps=false
18+
multichannel_signed_distance_field=false
19+
msdf_pixel_range=8
20+
msdf_size=48
21+
allow_system_fallback=true
22+
force_autohinter=false
23+
hinting=1
24+
subpixel_positioning=1
25+
oversampling=0.0
26+
Fallbacks=null
27+
fallbacks=[]
28+
Compress=null
29+
compress=true
30+
preload=[]
31+
language_support={}
32+
script_support={}
33+
opentype_features={}

Game/Game.gd

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
extends Node2D
22

3-
signal game_finished
3+
signal game_finished(winner_id: int)
44

55
var shooter_scene: PackedScene = preload("res://Game/Shooter/Shooter.tscn")
66
var bullet_scene: PackedScene = preload("res://Game/Bullet/Bullet.tscn")
@@ -22,7 +22,7 @@ func initialize_game() -> void:
2222

2323
for id in Globals.players:
2424
var shooter: Node2D = shooter_scene.instantiate()
25-
shooter.set_data(id, 1., Vector2(randf() * 1000, randf() * 1000))
25+
shooter.set_data(id, 1., Vector2(randf() * 1000, randf() * 1000), Globals.players[id].color)
2626
shooters[id] = shooter
2727
$Players.add_child(shooter)
2828

@@ -57,12 +57,13 @@ func kill_player(id: int) -> void:
5757
var alive_shooters: Array = get_alive_shooters()
5858
if alive_shooters.size() == 1:
5959
$GameInterface.visible = false
60-
alive_shooters[0].hide_self()
61-
game_finished.emit()
60+
var winner_id = alive_shooters[0]
61+
shooters[winner_id].hide_self()
62+
game_finished.emit(winner_id)
6263

6364
func get_alive_shooters() -> Array:
6465
var alive_shooters: Array = []
6566
for id in shooters:
6667
if not shooters[id].is_dead:
67-
alive_shooters.append(shooters[id])
68+
alive_shooters.append(id)
6869
return alive_shooters

Game/Shooter/Shooter.gd

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ signal died
55
var bullet_scene: PackedScene = preload("res://Game/Bullet/Bullet.tscn")
66
var is_dead: bool = false
77

8-
func set_data(in_id: int, in_lifetime: float, in_position: Vector2) -> void:
9-
$ShooterBody.set_data(in_id, in_lifetime)
8+
func set_data(in_id: int, in_lifetime: float, in_position: Vector2, in_color: Color) -> void:
9+
$ShooterBody.set_data(in_id, in_lifetime, in_color)
1010
$ShooterBody.position = in_position
1111
$Bullet.position = in_position
1212
$Bullet.connect("bullet_destroyed", _on_bullet_destroyed)
@@ -33,9 +33,11 @@ func hide_self() -> void:
3333
$Bullet.hide()
3434
$Bullet/CollisionShape2D.call_deferred("set_disabled", true)
3535
$ShooterBody/PlayerInterface/ProgressBar.visible = false
36+
$ShooterBody/PlayerInterface/Username.visible = false
3637

3738
func show_self() -> void:
3839
$ShooterBody.show()
3940
$Bullet.show()
4041
$Bullet/CollisionShape2D.call_deferred("set_disabled", false)
4142
$ShooterBody/PlayerInterface/ProgressBar.visible = true
43+
$ShooterBody/PlayerInterface/Username.visible = true

Game/Shooter/ShooterBody/ShooterBody.gd

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,15 @@ const SPEED = 300.0
66

77
var player_id: int
88
var lifetime: float = 1.0
9+
var color: Color
910

10-
func set_data(in_id: int, in_lifetime: float):
11+
func set_data(in_id: int, in_lifetime: float, in_color: Color):
1112
self.player_id = in_id
1213
self.lifetime = in_lifetime
14+
self.color = in_color
15+
16+
$Sprite2D.material.set_shader_parameter("color", color)
17+
$PlayerInterface/Username.text = Globals.players[player_id].username
1318

1419
func handle_input(delta, direction: Vector2):
1520
position += direction * SPEED * delta
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
shader_type canvas_item;
2+
3+
uniform vec3 color: source_color;
4+
uniform sampler2D noise_texture;
5+
uniform float speed: hint_range(0., 5., .01) = 1.;
6+
7+
void fragment() {
8+
float uv_y = fract(UV.y + TIME * speed);
9+
float uv_x = UV.x;
10+
float noise = texture(noise_texture, vec2(uv_x, uv_y)).r;
11+
COLOR.rgb = mix(COLOR.rgb, color, noise);
12+
}

Game/Shooter/ShooterBody/ShooterBody.tscn

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,25 @@
1-
[gd_scene load_steps=6 format=3 uid="uid://dls4hqbimn45v"]
1+
[gd_scene load_steps=10 format=3 uid="uid://dls4hqbimn45v"]
22

33
[ext_resource type="Script" path="res://Game/Shooter/ShooterBody/ShooterBody.gd" id="1_arp0o"]
44
[ext_resource type="StyleBox" uid="uid://b7yej2jfcd688" path="res://Game/ProgressBarStyle/BackgroundStyle.tres" id="2_swtwr"]
55
[ext_resource type="StyleBox" uid="uid://jqlp6y7ktm1j" path="res://Game/ProgressBarStyle/FillStyle.tres" id="3_yjvxk"]
6+
[ext_resource type="Shader" path="res://Game/Shooter/ShooterBody/ShooterBody.gdshader" id="4_4wty4"]
67
[ext_resource type="Texture2D" uid="uid://d0hjthpewlorv" path="res://Externals/Shooter.png" id="4_rf1hm"]
78

9+
[sub_resource type="FastNoiseLite" id="FastNoiseLite_m7qyo"]
10+
11+
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_tkmh3"]
12+
seamless = true
13+
seamless_blend_skirt = 1.0
14+
noise = SubResource("FastNoiseLite_m7qyo")
15+
16+
[sub_resource type="ShaderMaterial" id="ShaderMaterial_yhu04"]
17+
resource_local_to_scene = true
18+
shader = ExtResource("4_4wty4")
19+
shader_parameter/color = Color(0, 0.670588, 0.662745, 1)
20+
shader_parameter/speed = 0.541
21+
shader_parameter/noise_texture = SubResource("NoiseTexture2D_tkmh3")
22+
823
[sub_resource type="CircleShape2D" id="CircleShape2D_u257t"]
924
radius = 48.0
1025

@@ -23,12 +38,23 @@ theme_override_styles/background = ExtResource("2_swtwr")
2338
theme_override_styles/fill = ExtResource("3_yjvxk")
2439
show_percentage = false
2540

41+
[node name="Username" type="Label" parent="PlayerInterface"]
42+
offset_left = -40.0
43+
offset_top = -12.0
44+
offset_right = 40.0
45+
offset_bottom = 12.0
46+
text = "username"
47+
horizontal_alignment = 1
48+
vertical_alignment = 1
49+
2650
[node name="Sprite2D" type="Sprite2D" parent="."]
51+
material = SubResource("ShaderMaterial_yhu04")
2752
rotation = 1.5708
2853
texture = ExtResource("4_rf1hm")
2954
offset = Vector2(0, -16)
3055

3156
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
57+
visible = false
3258
shape = SubResource("CircleShape2D_u257t")
3359

3460
[connection signal="body_entered" from="." to="." method="_on_body_entered"]

Interface/Interface.gd

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,12 @@ func set_data(state: PeerState):
5959
username = $LoginScreen/Username.text
6060
peer_status = state
6161

62+
func set_winner(winner_id: int):
63+
for id in Globals.players:
64+
Globals.players[id]["label"].set_loser()
65+
66+
Globals.players[winner_id]["label"].set_winner()
67+
6268
func add_player(id: int, in_is_ready: bool, player_username: String):
6369
if not id in Globals.players:
6470
var label: HBoxContainer = player_label.instantiate()

0 commit comments

Comments
 (0)