From 768dbaf21ccc8580b7400624134385c36202daa8 Mon Sep 17 00:00:00 2001 From: Fisch Date: Sat, 9 Nov 2024 10:32:12 +0100 Subject: [PATCH] fix S-shape road tile --- scenes/game.tscn | 24 ++++++++-- scenes/map_01.tscn | 2 +- scripts/car.gd | 6 +-- scripts/game.gd | 42 ++++++++++++++++-- sprites/spritesheet_road/road_2x2.xcf | Bin 106472 -> 109644 bytes .../spritesheet_markings1x1.png | Bin 582 -> 582 bytes .../spritesheet_road/spritesheet_road1x1.png | Bin 12643 -> 12643 bytes .../spritesheet_road/spritesheet_road2x2.png | Bin 12552 -> 12090 bytes 8 files changed, 62 insertions(+), 12 deletions(-) diff --git a/scenes/game.tscn b/scenes/game.tscn index 9fb6f00..602464b 100644 --- a/scenes/game.tscn +++ b/scenes/game.tscn @@ -39,10 +39,26 @@ horizontal_alignment = 1 vertical_alignment = 1 [node name="times_container" type="HFlowContainer" parent="hud"] -offset_left = 29.0 -offset_top = 29.0 -offset_right = 69.0 -offset_bottom = 69.0 +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 +grow_horizontal = 2 +grow_vertical = 2 + +[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="Camera2D" type="Camera2D" parent="."] diff --git a/scenes/map_01.tscn b/scenes/map_01.tscn index b15ba1a..6499610 100644 --- a/scenes/map_01.tscn +++ b/scenes/map_01.tscn @@ -202,7 +202,7 @@ tile_map_data = PackedByteArray("AAAAAP//AgAAAAAAAGD/////AgAAAAAAAGD+////AgAAAAA tile_set = ExtResource("2_i1338") [node name="road_bg2" type="TileMapLayer" parent="."] -tile_map_data = PackedByteArray("AAD4/wEAAgABAAIAAAD5/wAAAgABAAIAAEAAAAgAAAADAAIAAFD//wkAAAABAAMAAFAHAAIAAAAAAAIAAFAGAAMAAAABAAMAAFAHAAEAAAABAAMAAAAGAAAAAAAAAAIAAAD4/wgAAAAAAAIAADD3/wcAAAABAAMAADD6/wYAAAAAAAIAADD5/wUAAAABAAMAADAFAAEAAAABAAEAAEAEAAAAAAAAAAAAAEAEAAEAAAABAAAAAED+/wMAAAACAAMAADD+/wQAAAAEAAIAADD9/wMAAAAFAAMAADAAAAQAAgABAAEAAGD//wQAAgABAAEAAFABAAQAAgABAAEAAFACAAQAAgABAAEAAFAEAAIAAgACAAIAAED3/wQAAgAHAAIAADD3/wIAAgAHAAIAADD6////AgAHAAIAAGD5/wMAAgAHAAIAADD7/wEAAgAHAAIAAGD8/wEAAgABAAEAAGD8/wYAAgAHAAIAAFD6/wMAAgAHAAIAAAD7/wQAAAACAAMAADD7/wUAAAACAAIAADD6/wQAAAADAAMAADD9/wYAAgABAAEAAFD+/wYAAgABAAEAAFD//wUAAgABAAEAAGAAAAcAAAACAAIAAFD//wgAAAADAAMAAFAEAAMAAgAGAAAAAAABAAYAAgABAAEAAGAHAAMAAAABAAIAAFD9/wQAAAAFAAIAADD//wcAAAACAAMAAFA=") +tile_map_data = PackedByteArray("AAD4/wEAAgABAAIAAAD5/wAAAgABAAIAAEAAAAgAAAADAAIAAFD//wkAAAABAAMAAFAHAAIAAAAAAAIAAFAGAAMAAAABAAMAAFAHAAEAAAABAAMAAAAGAAAAAAAAAAIAAAD4/wgAAAAAAAIAADD3/wcAAAABAAMAADD6/wYAAAAAAAIAADD5/wUAAAABAAMAADAFAAEAAAABAAEAAEAEAAAAAAAAAAAAAEAEAAEAAAABAAAAAED+/wMAAAACAAMAADD+/wQAAAAEAAIAADD9/wMAAAAFAAMAADAAAAQAAgABAAEAAGD//wQAAgABAAEAAFABAAQAAgABAAEAAFACAAQAAgABAAEAAFAEAAIAAgACAAIAAED3/wQAAgAHAAIAADD3/wIAAgAHAAIAADD6////AgAHAAIAAGD5/wMAAgAHAAIAADD7/wEAAgAHAAIAAGD8/wEAAgABAAEAAGD8/wYAAgAHAAIAAFD6/wMAAgAHAAIAAAD7/wQAAAACAAMAADD7/wUAAAACAAIAADD6/wQAAAADAAMAADD9/wYAAgABAAEAAFD+/wYAAgABAAEAAFD//wUAAgABAAEAAGAAAAcAAAACAAIAAFD//wgAAAADAAMAAFAEAAMAAgAGAAAAAAABAAYAAgABAAEAAGAHAAMAAAABAAIAAFD9/wQAAAAFAAIAADD//wcAAAACAAMAAFD8/wgAAgAHAAIAAGD7/wgAAgAHAAIAAFAFAAMAAgAHAAIAAFAFAAAAAgAHAAIAAGA=") tile_set = ExtResource("2_i1338") [node name="road_bg_fixes" type="TileMapLayer" parent="."] diff --git a/scripts/car.gd b/scripts/car.gd index c0b1981..45b8335 100644 --- a/scripts/car.gd +++ b/scripts/car.gd @@ -34,13 +34,13 @@ var traction_slow = 0.5 #Automatic Steering settings -var steering_speed_slow = 100 #speed for slow steering +var steering_speed_slow = 150 #speed for slow steering var steering_angle_slow = 50 #maximum angle slow speed var steering_distance_far_slow=200 var steering_distance_close_slow=20 -var steering_speed_fast = 300 #speed for fast steering -var steering_angle_fast = 5 #maximum angle fast speed +var steering_speed_fast = 400 #speed for fast steering +var steering_angle_fast = 2 #maximum angle fast speed var steering_distance_far_fast=256 var steering_distance_close_fast=128 diff --git a/scripts/game.gd b/scripts/game.gd index 4f59476..2e2a894 100644 --- a/scripts/game.gd +++ b/scripts/game.gd @@ -7,6 +7,9 @@ extends Node2D @onready var cars: Node = $cars @onready var times_container: HFlowContainer = $hud/times_container + +@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 @@ -14,14 +17,14 @@ var viewCarMargin_zoomstart=viewCarMargin-Vector2(0.2,0.2) #start zooming var viewCarMargin_zoombackup=viewCarMargin_zoomstart-Vector2(0.1,0.1) #start zooming back in var zoomspeed=0.5 var zoomspeed_backup=0.1 #relative to screen size -var zoom_normal=2.0 +var zoom_normal=1.5 const CAMERA_POSITION_SPEED=0.95 #0.0 - 1.0, higher=faster var running=false var rounds=3 - +var game_ended=false # Called when the node enters the scene tree for the first time. func _ready() -> void: @@ -30,7 +33,7 @@ func _ready() -> void: #Load Map var checkpoints :Array[String]=[] - var mapscene=load("res://scenes/map_02.tscn") + var mapscene=load("res://scenes/map_00.tscn") var mapsceneinstance=mapscene.instantiate() add_child(mapsceneinstance) for mapc in mapsceneinstance.get_children(): @@ -54,7 +57,6 @@ func _ready() -> void: i+=1 - # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: if running: @@ -135,6 +137,21 @@ func _process(delta: float) -> void: #$hud/debuglabel.text=""+str(calculatedViewCarMargin)+" / "+str(viewsize)+" zoomspeed="+str(mapped_zoomspeed) $hud/timer.text=str(round(Gamestate.getTimeElapsed()*1000)/1000.0) + + + 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 + func _input(ev): @@ -160,6 +177,11 @@ func constrain(val,a,b): var vmin=min(a,b) var vmax=max(a,b) return min(vmax,max(vmin,val)) + +func constrain2(val:Vector2,a:Vector2,b:Vector2): + var vmin=a.min(b) + var vmax=a.max(b) + return vmax.min(vmin.max(val)) func _on_countdown_timeout() -> void: @@ -169,6 +191,7 @@ func _on_countdown_timeout() -> void: c.setRunning(true) countdown_label.visible=false + func _on_car_finished(playerid,finalTime) -> void: print("Finished "+str(playerid)+" final time="+str(finalTime)) var place=times_container.get_child_count()+1 @@ -179,3 +202,14 @@ func _on_car_finished(playerid,finalTime) -> void: newlabel.text=str(place)+": "+str(round(finalTime*1000)/1000.0)+"s" newlabel.set("theme_override_colors/font_color",Gamestate.getPlayers()[playerid].color) + if times_container.get_child_count() == Gamestate.getPlayers().size(): #all players have finish times + finishGame()# Game finished + + + +func finishGame(): + print("Game Finished") + running=false + game_ended=true + overlaycolor.visible=true + diff --git a/sprites/spritesheet_road/road_2x2.xcf b/sprites/spritesheet_road/road_2x2.xcf index 30ed920d7e2a01e9b3e56c1bf694fe0d21dd1ecf..a319ce5785af86b4e420f23230b6106984137e18 100644 GIT binary patch delta 5618 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 diff --git a/sprites/spritesheet_road/spritesheet_markings1x1.png b/sprites/spritesheet_road/spritesheet_markings1x1.png index ab6cdc4cce4cb0f63c3698a627a650ee4cc11935..135e2e50e2bf07b6a8521ffc38c9dfc7ca72d3a4 100644 GIT binary patch delta 69 zcmX@ca*Sod5)MvIdG>@aZ__reQDGFZ3^A~@GB&g_Fwr(Jure_4PPy$h`3a)}Lc$y( Np*!;d$7Bg6Jpk=76aWAK delta 69 zcmX@ca*Sod5)L*YW0lRDR@ZJ^qrxa+7Gh{&Wol?;Y^-fyU}a#S)>XcC@)Je{goGJH NLV0=R)yWb}dI0s)6o~); diff --git a/sprites/spritesheet_road/spritesheet_road1x1.png b/sprites/spritesheet_road/spritesheet_road1x1.png index 73093788455ccd2d50232785dc3ae5daf888ea64..081be2ec6a1ddf4024b3bc512f1f239b90b150ab 100644 GIT binary patch delta 98 zcmaEy^f+llIU@%rr#zeZ=er*^*E1&Qdsv1TSXvnyS{WE<8yEn|{o4N{85kHeN?apK qQW8s2tx7U;Q;SOya|;-Z42(>44Gnb-;Cjp;db;1e-ZNR<&;|fBwI3A# delta 98 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