keep rounds and map for next selection

This commit is contained in:
interfisch 2024-11-10 00:45:22 +01:00
parent 01bb4f3a4f
commit 3c66799413
5 changed files with 25 additions and 15 deletions

View file

@ -20,12 +20,12 @@ var viewCarMargin_zoombackup=viewCarMargin_zoomstart-Vector2(0.1,0.1) #start zoo
var zoomspeed=0.5 var zoomspeed=0.5
var zoomspeed_backup=0.1 #relative to screen size var zoomspeed_backup=0.1 #relative to screen size
var zoom_normal=1.5 var zoom_normal=1.5
const CAMERA_POSITION_SPEED=0.5 #0.0 - 1.0, higher=faster const CAMERA_POSITION_SPEED=0.02 #0.0 - 1.0, higher=faster
var running=false var running=false
var time_close_keypressed=1#seconds to wait after key pressed at endscreen var time_close_keypressed=1 #seconds to wait after key pressed at endscreen
var game_ended=false var game_ended=false
@ -39,7 +39,7 @@ func _ready() -> void:
#Load Map #Load Map
var checkpoints :Array[String]=[] var checkpoints :Array[String]=[]
var mapscene=load(Gamestate.getSelectedMap()) var mapscene=load(Gamestate.getSelectedMapSceneName())
var mapsceneinstance=mapscene.instantiate() var mapsceneinstance=mapscene.instantiate()
add_child(mapsceneinstance) add_child(mapsceneinstance)
for mapc in mapsceneinstance.get_children(): for mapc in mapsceneinstance.get_children():
@ -71,7 +71,6 @@ func _process(delta: float) -> void:
countdown_label.text=str(round(countdown.time_left)) countdown_label.text=str(round(countdown.time_left))
var cars=cars.get_children() var cars=cars.get_children()
var meanCarPosition=Vector2.ZERO
var displayedCarCount=0 var displayedCarCount=0
var maxCarSpeed=0 var maxCarSpeed=0
var minPos=Vector2.ZERO #min/max x and y position of all cars var minPos=Vector2.ZERO #min/max x and y position of all cars
@ -85,7 +84,6 @@ func _process(delta: float) -> void:
for c in cars: for c in cars:
if !c.hasFinished() or !oneDriving: if !c.hasFinished() or !oneDriving:
var carpos = c.getPosition() var carpos = c.getPosition()
meanCarPosition+=carpos
maxCarSpeed=max(maxCarSpeed,c.getSpeed()) maxCarSpeed=max(maxCarSpeed,c.getSpeed())
if displayedCarCount==0: if displayedCarCount==0:
@ -101,10 +99,9 @@ func _process(delta: float) -> void:
displayedCarCount+=1 displayedCarCount+=1
meanCarPosition/=displayedCarCount
#camera.position=lerp(camera.position,meanCarPosition,CAMERA_POSITION_SPEED) camera.position=lerp(camera.position,(minPos+maxPos)/2.0,CAMERA_POSITION_SPEED)
camera.position=meanCarPosition
var viewsize = camera.get_viewport_rect().size var viewsize = camera.get_viewport_rect().size

View file

@ -13,7 +13,7 @@ var map_scene_name=""
var map_scene_name_prefix="res://scenes/map_" var map_scene_name_prefix="res://scenes/map_"
var map_scene_name_postfix=".tscn" var map_scene_name_postfix=".tscn"
var rounds=1 var rounds=3
func getRounds(): func getRounds():
return rounds return rounds
@ -22,11 +22,14 @@ func setRounds(r):
print("Rounds set to "+str(r)) print("Rounds set to "+str(r))
rounds=r rounds=r
func getSelectedMap(): func getSelectedMap(): #return only short map name "00"
return map_scene_name return map_scene_name
func getSelectedMapSceneName(): #returns full scene path "res://scenes/map_00.tscn"
return map_scene_name_prefix+map_scene_name+map_scene_name_postfix
func setSelectedMap(mapname): func setSelectedMap(mapname):
map_scene_name=map_scene_name_prefix+mapname+map_scene_name_postfix map_scene_name=mapname
func checkColoriFree(i): func checkColoriFree(i):
var free=true var free=true

View file

@ -12,6 +12,12 @@ func _ready() -> void:
if len(Gamestate.getSelectedMap())<=0: #no map selected (ie on startup) if len(Gamestate.getSelectedMap())<=0: #no map selected (ie on startup)
get_children()[0].emit_signal("pressed") #preselect first map in list get_children()[0].emit_signal("pressed") #preselect first map in list
else:
for c in get_children():
if c.name==button_prefix+Gamestate.getSelectedMap():
c.emit_signal("pressed")
break
func _on_btn_map(btn): func _on_btn_map(btn):

View file

@ -7,6 +7,7 @@ extends Node
func _ready(): func _ready():
removeAssignedKeys() removeAssignedKeys()
Gamestate.removeAllPlayers() Gamestate.removeAllPlayers()
$Timer.stop()
func assignKeys(): func assignKeys():
var i=0 var i=0
@ -68,7 +69,9 @@ func _on_btn_fullscreen_toggled(toggled_on: bool) -> void:
func _on_rounds_selection_item_selected(index: int) -> void: func _on_rounds_selection_item_selected(index: int) -> void:
$Timer.start() if not $Timer.is_stopped(): #only restart
$Timer.start()
func _on_map_container_map_changed() -> void: func _on_map_container_map_changed() -> void:
$Timer.start() if not $Timer.is_stopped(): #only restart
$Timer.start()

View file

@ -3,8 +3,9 @@ extends OptionButton
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready() -> void: func _ready() -> void:
select(3-1) #preselect rounds var selectedRounds=Gamestate.getRounds()
Gamestate.setRounds(3) select(selectedRounds-1) #preselect rounds
Gamestate.setRounds(selectedRounds)