allow setting different backgrounds
This commit is contained in:
parent
2b74499051
commit
29b571317f
7 changed files with 63 additions and 28 deletions
|
@ -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:
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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 )
|
||||
|
|
12
mini-game/scenes/decor/background.gd
Normal file
12
mini-game/scenes/decor/background.gd
Normal file
|
@ -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]
|
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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()
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue