diff --git a/mini-game/MiniGame.gd b/mini-game/MiniGame.gd index cebfd1e..f49cf9e 100644 --- a/mini-game/MiniGame.gd +++ b/mini-game/MiniGame.gd @@ -3,6 +3,7 @@ extends Node signal game_over onready var foreground := $foreground +onready var background := $background onready var spawner := $spawner onready var player := $player onready var scoreUI := $scoreUI @@ -35,14 +36,14 @@ func setup(mode: String, goal: int, difficulty: String, next_lose: String, next_ game_goal = goal if(difficulty == "hard"): game_difficulty = "hard" - game_speed = 2 else: game_difficulty = "easy" game_version = version - print("setup minigame: " + mode + " " + next_lose + " " + next_win) + print("setup minigame: " + mode + " " + next_lose + " " + next_win + " | version: " + String(version)) set_mode(mode) - foreground.init(game_speed) - spawner.init(game_speed) + background.init(game_version) + foreground.init(game_speed, game_version) + spawner.init(game_difficulty, game_version) scoreUI.init(mode, goal) next_timeline_lose = next_lose next_timeline_win = next_win @@ -76,7 +77,7 @@ func start(): yield(t, "timeout") yield(t, "timeout") start_timer_UI.hide() - spawner.start(game_difficulty, game_version) + spawner.start() if game_mode == "score": scoreUI.start(0) else: diff --git a/mini-game/scenes/decor/ForegroundSprite.gd b/mini-game/scenes/decor/ForegroundSprite.gd index 6b621f6..ac035f9 100644 --- a/mini-game/scenes/decor/ForegroundSprite.gd +++ b/mini-game/scenes/decor/ForegroundSprite.gd @@ -2,8 +2,11 @@ extends Sprite export var scroll_speed = 9 +export(Array, Texture) var textures := [] + var speed_offset : float = 0 var moving = false +var game_version := 0 setget set_game_version signal viewport_entered(object) signal viewport_exited(object) @@ -26,6 +29,14 @@ func move(): position.x -= scroll_speed + speed_offset +func set_game_version(new_value: int): + game_version = new_value + if game_version < textures.size(): + texture = textures[game_version] + else: + texture = textures[0] + + func _on_VisibilityNotifier2D_viewport_entered(viewport: Viewport) -> void: emit_signal("viewport_entered", self) diff --git a/mini-game/scenes/decor/ForegroundSprite.tscn b/mini-game/scenes/decor/ForegroundSprite.tscn index 799c52e..7aaf036 100644 --- a/mini-game/scenes/decor/ForegroundSprite.tscn +++ b/mini-game/scenes/decor/ForegroundSprite.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=6 format=2] [ext_resource path="res://mini-game/ressources/backgrounds/road3.png" type="Texture" id=1] [ext_resource path="res://mini-game/scenes/decor/ForegroundSprite.gd" type="Script" id=2] +[ext_resource path="res://mini-game/ressources/backgrounds/road.png" type="Texture" id=3] [sub_resource type="Shader" id=1] code = "shader_type canvas_item; @@ -28,6 +29,7 @@ script = ExtResource( 2 ) __meta__ = { "_editor_description_": "" } +textures = [ ExtResource( 1 ), ExtResource( 3 ) ] [node name="VisibilityNotifier2D" type="VisibilityNotifier2D" parent="."] position = Vector2( 1930, 540 ) diff --git a/mini-game/scenes/decor/background.gd b/mini-game/scenes/decor/background.gd new file mode 100644 index 0000000..965bcd3 --- /dev/null +++ b/mini-game/scenes/decor/background.gd @@ -0,0 +1,12 @@ +extends Control + +export(Array, Texture) var textures := [] + +var game_version := 0 + +func init(version: int): + game_version = version + if version < textures.size(): + $TextureRect.texture = textures[version] + else: + $TextureRect.texture = textures[0] diff --git a/mini-game/scenes/decor/background.tscn b/mini-game/scenes/decor/background.tscn index e8e4ede..be7df5a 100644 --- a/mini-game/scenes/decor/background.tscn +++ b/mini-game/scenes/decor/background.tscn @@ -1,13 +1,17 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=4 format=2] [ext_resource path="res://mini-game/ressources/backgrounds/city.png" type="Texture" id=1] +[ext_resource path="res://mini-game/scenes/decor/background.gd" type="Script" id=2] +[ext_resource path="res://mini-game/ressources/backgrounds/background.png" type="Texture" id=3] [node name="background" type="Control"] anchor_right = 1.0 anchor_bottom = 1.0 +script = ExtResource( 2 ) __meta__ = { "_edit_use_anchors_": false } +textures = [ ExtResource( 1 ), ExtResource( 3 ) ] [node name="TextureRect" type="TextureRect" parent="."] anchor_right = 1.0 diff --git a/mini-game/scenes/decor/foreground.gd b/mini-game/scenes/decor/foreground.gd index b098367..2495fc6 100644 --- a/mini-game/scenes/decor/foreground.gd +++ b/mini-game/scenes/decor/foreground.gd @@ -2,35 +2,39 @@ extends Node2D var sprite_scene = preload("res://mini-game/scenes/decor/ForegroundSprite.tscn") -var textures := [] +var sprites := [] +var game_version := 0 var moving := false var speed_offset : float = 0 setget set_speed_offset func _ready(): - textures.append($ForegroundSprite) + sprites.append($ForegroundSprite) stop() -func init(speed: float): +func init(speed: float, version: int): + game_version = version + for s in sprites: + s.game_version = game_version set_speed_offset(speed) func set_speed_offset(new_value: float): speed_offset = new_value - for t in textures: + for t in sprites: t.speed_offset = speed_offset func stop(): moving = false - for t in textures: + for t in sprites: t.stop() func start(): moving = true - for t in textures: + for t in sprites: t.start() @@ -42,10 +46,11 @@ func _on_ForegroundSprite_viewport_entered(object: Sprite) -> void: new_sprite.connect("viewport_exited", self, "_on_ForegroundSprite_viewport_exited") if moving: new_sprite.start() + new_sprite.game_version = game_version add_child(new_sprite) - textures.append(new_sprite) + sprites.append(new_sprite) func _on_ForegroundSprite_viewport_exited(object: Sprite) -> void: - textures.remove(textures.find(object)) + sprites.remove(sprites.find(object)) object.queue_free() diff --git a/mini-game/scenes/spawner/spawner.gd b/mini-game/scenes/spawner/spawner.gd index 277659f..9b29f51 100644 --- a/mini-game/scenes/spawner/spawner.gd +++ b/mini-game/scenes/spawner/spawner.gd @@ -17,9 +17,19 @@ onready var items := $items var last_timer_random : float = 1 -func init(speed: float): +func init(difficulty: String, version: int): + match difficulty: + "easy": + timer_speed = 1 + random_threshold = 40 + "hard": + timer_speed = 0.9 + random_threshold = 25 + _: + pass + scenes_offset = version update_timer() - set_speed_offset(speed) + set_speed_offset(0) func set_speed_offset(new_value: float): @@ -53,17 +63,7 @@ func update_timer(): timer.wait_time = timer_speed + random -func start(difficulty, version): - match difficulty: - "easy": - timer_speed = 1 - random_threshold = 40 - "hard": - timer_speed = 0.9 - random_threshold = 25 - _: - pass - scenes_offset = version +func start(): timer.start()