add endscreen with animation

This commit is contained in:
interfisch 2024-11-09 11:52:05 +01:00
parent 768dbaf21c
commit 7889e71581
6 changed files with 450 additions and 55 deletions

View file

@ -1,6 +1,116 @@
[gd_scene load_steps=2 format=3 uid="uid://cotth8e5rtioe"]
[gd_scene load_steps=6 format=3 uid="uid://cotth8e5rtioe"]
[ext_resource type="Script" path="res://scripts/game.gd" id="1_7syh4"]
[ext_resource type="Script" path="res://scripts/times.gd" id="2_80mhm"]
[sub_resource type="Animation" id="Animation_gjxtp"]
resource_name = "game_end"
length = 2.0
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("times_container:position")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.7, 2),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector2(92.1386, 36.868), Vector2(92.1386, 36.868), Vector2(410, 72)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("overlaycolor:self_modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.966667),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0.568627)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("timer:self_modulate")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0.0333333, 2),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("times_container:scale")
tracks/3/interp = 2
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0.7, 2),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(1, 1), Vector2(1.5, 1.5)]
}
[sub_resource type="Animation" id="Animation_ph30r"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("times_container:position")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(92.1386, 36.868)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("overlaycolor:self_modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("timer:self_modulate")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("times_container:scale")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(1, 1)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_wuihg"]
_data = {
"RESET": SubResource("Animation_ph30r"),
"game_end": SubResource("Animation_gjxtp")
}
[node name="Game" type="Node2D"]
script = ExtResource("1_7syh4")
@ -38,27 +148,32 @@ text = "3"
horizontal_alignment = 1
vertical_alignment = 1
[node name="overlaycolor" type="ColorRect" parent="hud"]
self_modulate = Color(1, 1, 1, 0)
offset_left = -25.0
offset_top = -20.0
offset_right = 1190.0
offset_bottom = 682.0
color = Color(0.482353, 0.482353, 0.482353, 0.52549)
[node name="times_container" type="HFlowContainer" parent="hud"]
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -546.0
offset_top = -294.0
offset_right = -506.0
offset_bottom = -254.0
offset_left = -483.861
offset_top = -287.132
offset_right = -425.861
offset_bottom = -210.132
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("2_80mhm")
[node name="overlaycolor" type="ColorRect" parent="hud"]
visible = false
modulate = Color(1, 1, 1, 0)
offset_left = -25.0
offset_top = -20.0
offset_right = 1190.0
offset_bottom = 682.0
color = Color(0.482353, 0.482353, 0.482353, 0.52549)
[node name="game_hud_animations" type="AnimationPlayer" parent="hud"]
libraries = {
"": SubResource("AnimationLibrary_wuihg")
}
[node name="Camera2D" type="Camera2D" parent="."]
@ -68,4 +183,9 @@ color = Color(0.482353, 0.482353, 0.482353, 0.52549)
wait_time = 3.0
one_shot = true
[node name="timer_close" type="Timer" parent="."]
wait_time = 5.0
one_shot = true
[connection signal="timeout" from="countdown" to="." method="_on_countdown_timeout"]
[connection signal="timeout" from="timer_close" to="." method="_on_timer_close_timeout"]

View file

@ -202,7 +202,7 @@ tile_map_data = PackedByteArray("AAD/////AgAAAAAAAGD//wAAAgAAAAAAAFAAAP//AgAAAAA
tile_set = ExtResource("2_aegf7")
[node name="road_bg2" type="TileMapLayer" parent="."]
tile_map_data = PackedByteArray("AAAKAAMAAgABAAIAAAALAAIAAgACAAIAADALAAMAAgAHAAEAAAAEAAEAAgAHAAIAAGAFAAEAAAAFAAIAAAAFAAIAAAAFAAMAAAAFAAMAAAAAAAIAAFAFAAQAAAABAAIAAFAEAAMAAAAAAAMAAFAEAAQAAAABAAMAAFD7/wEAAgABAAEAAAD7/wIAAgABAAEAAAD6/wEAAAABAAEAADD6/wIAAAABAAAAADD7/wAAAgAEAAAAAGAAAAEAAgABAAEAAGACAAEAAgABAAEAAFD7////AAAFAAMAAGD6////AAAFAAIAAGD6/wAAAAAEAAIAAGAGAAcAAAAEAAIAAFAGAAgAAAAFAAIAAFAFAAgAAAAFAAMAAFAJAAEAAAAFAAIAAAAJAAIAAAAFAAMAAAAIAAEAAAAEAAIAAAAHAAEAAAAFAAMAAGAGAAEAAAAFAAIAAGAGAAIAAAAEAAIAAGALAP7/AAAFAAIAAAALAP//AAAFAAMAAAAKAP7/AAAEAAIAAAAIAP7/AgAHAAIAAGAKAP//AgAEAAAAAAAJAAUAAgABAAEAAFAGAAUAAAACAAIAAFAGAAYAAAADAAIAAFAFAAUAAAACAAMAAFAFAAYAAAADAAMAAFAAAAYAAAACAAMAADAAAAcAAAACAAIAADD//wYAAAADAAMAADD//wcAAAADAAIAADAAAAMAAAADAAMAAGAAAAQAAAACAAMAAGD//wMAAAADAAIAAGD//wQAAAACAAIAAGD//wIAAgACAAIAAED//wgAAgAHAAEAAFD+/wcAAgAHAAEAAFD9/wYAAgAHAAEAAFD9/wMAAgAHAAEAADD+/wIAAgAHAAEAADABAAYAAgAHAAEAADACAAYAAgACAAIAAEAAAAgAAgACAAIAAGD9/wQAAgACAAIAAAD9/wUAAgACAAIAACABAAcAAgABAAIAAHADAAMAAAAAAAAAAHAIAAIAAgAEAAAAAAAHAAIAAgAEAAAAABA=")
tile_map_data = PackedByteArray("AAAKAAMAAgABAAIAAAALAAIAAgACAAIAADALAAMAAgAHAAEAAAAEAAEAAgAHAAIAAGAFAAEAAAAFAAIAAAAFAAIAAAAFAAMAAAAFAAMAAAAAAAIAAFAFAAQAAAABAAIAAFAEAAMAAAAAAAMAAFAEAAQAAAABAAMAAFD7/wEAAgABAAEAAAD7/wIAAgABAAEAAAD6/wEAAAABAAEAADD6/wIAAAABAAAAADD7/wAAAgAEAAAAAGAAAAEAAgABAAEAAGACAAEAAgABAAEAAFD7////AAAFAAMAAGD6////AAAFAAIAAGD6/wAAAAAEAAIAAGAGAAcAAAAEAAIAAFAGAAgAAAAFAAIAAFAFAAgAAAAFAAMAAFAJAAEAAAAFAAIAAAAJAAIAAAAFAAMAAAAIAAEAAAAEAAIAAAAHAAEAAAAFAAMAAGAGAAEAAAAFAAIAAGAGAAIAAAAEAAIAAGALAP7/AAAFAAIAAAALAP//AAAFAAMAAAAKAP7/AAAEAAIAAAAIAP7/AgAHAAIAAGAKAP//AgAEAAAAAAAJAAUAAgABAAEAAFAGAAUAAAACAAIAAFAGAAYAAgAHAAIAAAAFAAUAAAACAAMAAFAFAAYAAAADAAMAAFAAAAYAAAACAAMAADAAAAcAAAACAAIAADD//wYAAAADAAMAADD//wcAAAADAAIAADAAAAMAAAADAAMAAGAAAAQAAAACAAMAAGD//wMAAAADAAIAAGD//wQAAAACAAIAAGD//wIAAgACAAIAAED//wgAAgAHAAEAAFD+/wcAAgAHAAEAAFD9/wYAAgAHAAEAAFD9/wMAAgAHAAEAADD+/wIAAgAHAAEAADABAAYAAgAHAAEAADACAAYAAgACAAIAAEAAAAgAAgACAAIAAGD9/wQAAgACAAIAAAD9/wUAAgACAAIAACABAAcAAgABAAIAAHADAAMAAAAAAAAAAHAIAAIAAgAEAAAAAAAHAAIAAgAEAAAAABACAAMAAgAHAAIAAFAFAP//AgAHAAIAAGAGAP//AgAHAAIAAGAHAP//AgAHAAIAAFA=")
tile_set = ExtResource("2_aegf7")
[node name="road_bg_fixes" type="TileMapLayer" parent="."]

256
scenes/map_goaltest.tscn Normal file
View file

@ -0,0 +1,256 @@
[gd_scene load_steps=14 format=4 uid="uid://cmp1wkkkeu1ea"]
[ext_resource type="Texture2D" uid="uid://bu05e161cb61k" path="res://sprites/background/spritesheet_bg.png" id="1_d4btd"]
[ext_resource type="TileSet" uid="uid://beswbm12qkkxk" path="res://sprites/spritesheet_road/bg_road.tres" id="2_a3tr3"]
[ext_resource type="TileSet" uid="uid://buu8w8n61kbxf" path="res://sprites/spritesheet_road/markings.tres" id="3_lymgv"]
[ext_resource type="TileSet" uid="uid://b15864hbqomim" path="res://sprites/spritesheet_road/road.tres" id="4_asfaj"]
[ext_resource type="Texture2D" uid="uid://dpuhee0x5ekud" path="res://sprites/background/spritesheet_scenery.png" id="5_clogf"]
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_qbu02"]
texture = ExtResource("1_d4btd")
texture_region_size = Vector2i(256, 256)
0:0/0 = 0
1:0/0 = 0
2:0/0 = 0
3:0/0 = 0
4:0/0 = 0
5:0/0 = 0
6:0/0 = 0
7:0/0 = 0
0:1/0 = 0
1:1/0 = 0
2:1/0 = 0
3:1/0 = 0
4:1/0 = 0
5:1/0 = 0
6:1/0 = 0
7:1/0 = 0
0:2/0 = 0
1:2/0 = 0
2:2/0 = 0
3:2/0 = 0
4:2/0 = 0
5:2/0 = 0
6:2/0 = 0
7:2/0 = 0
0:3/0 = 0
1:3/0 = 0
2:3/0 = 0
3:3/0 = 0
4:3/0 = 0
5:3/0 = 0
6:3/0 = 0
7:3/0 = 0
[sub_resource type="TileSet" id="TileSet_5knbn"]
tile_size = Vector2i(256, 256)
sources/1 = SubResource("TileSetAtlasSource_qbu02")
[sub_resource type="RectangleShape2D" id="RectangleShape2D_daqun"]
size = Vector2(23, 222)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_dltky"]
size = Vector2(19, 108)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_uys5r"]
size = Vector2(20, 126)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_82iti"]
size = Vector2(20, 231)
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_hclam"]
texture = ExtResource("5_clogf")
texture_region_size = Vector2i(128, 128)
2:0/0 = 0
3:0/0 = 0
6:0/0 = 0
7:0/0 = 0
8:0/0 = 0
9:0/0 = 0
10:0/0 = 0
11:0/0 = 0
12:0/0 = 0
13:0/0 = 0
14:0/0 = 0
15:0/0 = 0
2:1/0 = 0
3:1/0 = 0
6:1/0 = 0
7:1/0 = 0
8:1/0 = 0
9:1/0 = 0
10:1/0 = 0
11:1/0 = 0
12:1/0 = 0
13:1/0 = 0
14:1/0 = 0
15:1/0 = 0
0:2/0 = 0
1:2/0 = 0
2:2/0 = 0
3:2/0 = 0
4:2/0 = 0
5:2/0 = 0
6:2/0 = 0
7:2/0 = 0
8:2/0 = 0
9:2/0 = 0
10:2/0 = 0
11:2/0 = 0
12:2/0 = 0
13:2/0 = 0
14:2/0 = 0
15:2/0 = 0
0:3/0 = 0
1:3/0 = 0
2:3/0 = 0
3:3/0 = 0
4:3/0 = 0
5:3/0 = 0
6:3/0 = 0
7:3/0 = 0
8:3/0 = 0
9:3/0 = 0
10:3/0 = 0
11:3/0 = 0
12:3/0 = 0
13:3/0 = 0
14:3/0 = 0
15:3/0 = 0
0:4/0 = 0
1:4/0 = 0
2:4/0 = 0
3:4/0 = 0
4:4/0 = 0
5:4/0 = 0
6:4/0 = 0
7:4/0 = 0
8:4/0 = 0
9:4/0 = 0
10:4/0 = 0
11:4/0 = 0
12:4/0 = 0
13:4/0 = 0
14:4/0 = 0
15:4/0 = 0
0:5/0 = 0
1:5/0 = 0
2:5/0 = 0
3:5/0 = 0
4:5/0 = 0
5:5/0 = 0
6:5/0 = 0
7:5/0 = 0
8:5/0 = 0
9:5/0 = 0
10:5/0 = 0
11:5/0 = 0
12:5/0 = 0
13:5/0 = 0
14:5/0 = 0
15:5/0 = 0
0:6/0 = 0
1:6/0 = 0
2:6/0 = 0
3:6/0 = 0
4:6/0 = 0
5:6/0 = 0
6:6/0 = 0
7:6/0 = 0
8:6/0 = 0
9:6/0 = 0
10:6/0 = 0
11:6/0 = 0
12:6/0 = 0
13:6/0 = 0
14:6/0 = 0
15:6/0 = 0
0:7/0 = 0
1:7/0 = 0
2:7/0 = 0
3:7/0 = 0
4:7/0 = 0
5:7/0 = 0
6:7/0 = 0
7:7/0 = 0
8:7/0 = 0
9:7/0 = 0
10:7/0 = 0
11:7/0 = 0
12:7/0 = 0
13:7/0 = 0
14:7/0 = 0
15:7/0 = 0
0:0/size_in_atlas = Vector2i(2, 2)
0:0/0 = 0
4:0/size_in_atlas = Vector2i(2, 2)
4:0/0 = 0
[sub_resource type="TileSet" id="TileSet_s6rw7"]
tile_size = Vector2i(128, 128)
sources/0 = SubResource("TileSetAtlasSource_hclam")
[node name="Map" type="Node"]
[node name="Background" type="TileMapLayer" parent="."]
tile_set = SubResource("TileSet_5knbn")
collision_enabled = false
[node name="road_bg" type="TileMapLayer" parent="."]
tile_map_data = PackedByteArray("AAD/////AgAAAAAAAGD//wAAAgAAAAAAAFAAAP//AgAAAAAAAGAAAAAAAgAAAAAAAFABAP//AgAAAAAAAGABAAAAAgAAAAAAAFA=")
tile_set = ExtResource("2_a3tr3")
[node name="road_bg2" type="TileMapLayer" parent="."]
tile_set = ExtResource("2_a3tr3")
[node name="road_bg_fixes" type="TileMapLayer" parent="."]
tile_set = ExtResource("2_a3tr3")
[node name="markings" type="TileMapLayer" parent="."]
z_index = 1
tile_map_data = PackedByteArray("AAAAAAAAAQAAAAAAAFAAAP//AQAAAAAAAHA=")
tile_set = ExtResource("3_lymgv")
[node name="road_r" type="TileMapLayer" parent="."]
tile_map_data = PackedByteArray("AAD//wAAAgABAAAAAFAAAAAAAgABAAAAAFABAAAAAgABAAAAAFACAAAAAgABAAAAAFADAAAAAgABAAAAAFAEAAAAAgABAAAAAFAFAAAAAgABAAAAAFAGAAAAAgABAAAAAFA=")
tile_set = ExtResource("4_asfaj")
[node name="road_l" type="TileMapLayer" parent="."]
tile_map_data = PackedByteArray("AAABAP//AgABAAAAAHAAAP//AgABAAAAAHD/////AgABAAAAAHADAP//AAADAAAAAHADAAAAAAACAAAAAHACAP//AAADAAEAAHAEAAAAAgABAAAAAHAFAAAAAgABAAAAAHAGAAAAAgABAAAAAHA=")
tile_set = ExtResource("4_asfaj")
[node name="area_finish" type="Area2D" parent="."]
collision_layer = 4
collision_mask = 4
[node name="CollisionShape2D_Fin" type="CollisionShape2D" parent="area_finish"]
position = Vector2(668, 10)
shape = SubResource("RectangleShape2D_daqun")
[node name="area_cp0" type="Area2D" parent="."]
collision_layer = 4
collision_mask = 4
[node name="CollisionShape2D" type="CollisionShape2D" parent="area_cp0"]
position = Vector2(385, 52)
shape = SubResource("RectangleShape2D_dltky")
[node name="area_cp1" type="Area2D" parent="."]
collision_layer = 4
collision_mask = 4
[node name="CollisionShape2D" type="CollisionShape2D" parent="area_cp1"]
position = Vector2(454, 52)
shape = SubResource("RectangleShape2D_uys5r")
[node name="area_cp2" type="Area2D" parent="."]
collision_layer = 4
collision_mask = 4
[node name="CollisionShape2D" type="CollisionShape2D" parent="area_cp2"]
position = Vector2(539, 23)
shape = SubResource("RectangleShape2D_82iti")
[node name="scenery" type="TileMapLayer" parent="."]
z_index = 20
tile_set = SubResource("TileSet_s6rw7")

View file

@ -5,11 +5,13 @@ extends Node2D
@onready var countdown_label: Label = $hud/countdown_label
@onready var cars: Node = $cars
@onready var game_hud_animations: AnimationPlayer = $hud/game_hud_animations
@onready var times_container: HFlowContainer = $hud/times_container
@onready var timer_close: Timer = $timer_close
@onready var overlaycolor: ColorRect = $hud/overlaycolor
const caroffset= 32+4 #space cars on start line
var viewCarMargin=Vector2(0.7,0.7) #1=zoom out full speed when car is at border. 0.9 zoom out full speed when car is 10% away from border
@ -18,14 +20,17 @@ var viewCarMargin_zoombackup=viewCarMargin_zoomstart-Vector2(0.1,0.1) #start zoo
var zoomspeed=0.5
var zoomspeed_backup=0.1 #relative to screen size
var zoom_normal=1.5
const CAMERA_POSITION_SPEED=0.95 #0.0 - 1.0, higher=faster
const CAMERA_POSITION_SPEED=0.05 #0.0 - 1.0, higher=faster
var running=false
var rounds=3
var rounds=1
var time_close_keypressed=1#seconds to wait after key pressed at endscreen
var game_ended=false
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
countdown.start()
@ -33,7 +38,7 @@ func _ready() -> void:
#Load Map
var checkpoints :Array[String]=[]
var mapscene=load("res://scenes/map_00.tscn")
var mapscene=load("res://scenes/map_goaltest.tscn")
var mapsceneinstance=mapscene.instantiate()
add_child(mapsceneinstance)
for mapc in mapsceneinstance.get_children():
@ -97,24 +102,11 @@ func _process(delta: float) -> void:
meanCarPosition/=displayedCarCount
#camera.position=meanCarPosition
camera.position=lerp(camera.position,meanCarPosition,CAMERA_POSITION_SPEED)
#rint("zoom = "+str(camera.zoom))
#camera.zoom=Vector2(1.5,1.5)
'''var allCarsInView=checkPositionInsideView(minPos) and checkPositionInsideView(maxPos)
if not allCarsInView:
camera.zoom-=Vector2(0.1*delta,0.1*delta)
else:
if camera.zoom<Vector2(1.0,1.0):
camera.zoom+=Vector2(0.1*delta,0.1*delta)
'''
#var viewsize = camera.get_viewport_rect().size/camera.zoom
var viewsize = camera.get_viewport_rect().size
var carSpread=Vector2(maxPos.x-minPos.x,maxPos.y-minPos.y)
#var calculatedViewCarMargin=Vector2((viewsize.x-carSpread.x)/2,(viewsize.y-carSpread.y)/2)
#var calculatedViewCarMargin=Vector2(carSpread.x/viewsize.x,carSpread.y/viewsize.y)
var calculatedViewCarMargin=carSpread*camera.zoom #when cars are screen width apart this number matches viewsize=camera.get_viewport_rect().size
@ -140,18 +132,15 @@ func _process(delta: float) -> void:
if game_ended:
var ovlcolor=overlaycolor.get_modulate()
ovlcolor.a+=0.5*delta
ovlcolor.a=constrain(ovlcolor.a,0.0,1.0)
overlaycolor.set_modulate(ovlcolor)
var tconpos_goal=Vector2(556,304)
var tconpos=times_container.get_position()
var tconsize=times_container.get_size()
tconpos+=constrain2((tconpos_goal-tconpos),Vector2(100,100)*delta,Vector2(100,100)*delta) #TODO Fix movement
times_container.set_position(tconpos)
#TODO change size container
var anyplayerkeypressed=false
for p in Gamestate.getPlayers():
if Input.is_action_pressed(Gamestate.userinput_prefix+str(p.id)):
anyplayerkeypressed=true
if anyplayerkeypressed and timer_close.time_left<time_close_keypressed:
timer_close.wait_time=time_close_keypressed #set time back
timer_close.stop() #prepare for restarting at this time
if !anyplayerkeypressed and timer_close.is_stopped():
timer_close.start() #start timer when no key is pressed
func _input(ev):
@ -193,16 +182,9 @@ func _on_countdown_timeout() -> void:
func _on_car_finished(playerid,finalTime) -> void:
print("Finished "+str(playerid)+" final time="+str(finalTime))
var place=times_container.get_child_count()+1
print("New Label. Place "+str(place))
var newlabel= Label.new()
times_container.add_child(newlabel)
newlabel.set("theme_override_font_sizes/font_size",40)
newlabel.text=str(place)+": "+str(round(finalTime*1000)/1000.0)+"s"
newlabel.set("theme_override_colors/font_color",Gamestate.getPlayers()[playerid].color)
times_container.addFinishedPlayer(playerid,finalTime)
if times_container.get_child_count() == Gamestate.getPlayers().size(): #all players have finish times
if times_container.getPlayersFinished() == Gamestate.getPlayers().size(): #all players have finish times
finishGame()# Game finished
@ -211,5 +193,14 @@ func finishGame():
print("Game Finished")
running=false
game_ended=true
overlaycolor.visible=true
game_hud_animations.play("game_end")
timer_close.start()
#overlaycolor.visible=true
func _on_timer_close_timeout() -> void:
print("Close Map")
get_tree().change_scene_to_file("res://scenes/menu.tscn")

View file

@ -32,9 +32,11 @@ func getPlayers() -> Array[Player]:
class Player:
var inputkey:int
var color:Color
var id:int
func _init(key:int, i:int=-1):
inputkey=key
id=i
var sat = 1.0
var val = 0.7

26
scripts/times.gd Normal file
View file

@ -0,0 +1,26 @@
extends HFlowContainer
const fontSize_mini=40
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
func addFinishedPlayer(playerid,finalTime):
print("Finished "+str(playerid)+" final time="+str(finalTime))
var place=get_child_count()+1
#print("New Label. Place "+str(place))
var newlabel= Label.new()
add_child(newlabel)
newlabel.set("theme_override_font_sizes/font_size",fontSize_mini)
newlabel.text=str(place)+": "+str(round(finalTime*1000)/1000.0)+"s"
newlabel.set("theme_override_colors/font_color",Gamestate.getPlayers()[playerid].color)
func getPlayersFinished():
return get_child_count()