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
|
signal game_over
|
||||||
|
|
||||||
onready var foreground := $foreground
|
onready var foreground := $foreground
|
||||||
|
onready var background := $background
|
||||||
onready var spawner := $spawner
|
onready var spawner := $spawner
|
||||||
onready var player := $player
|
onready var player := $player
|
||||||
onready var scoreUI := $scoreUI
|
onready var scoreUI := $scoreUI
|
||||||
|
@ -35,14 +36,14 @@ func setup(mode: String, goal: int, difficulty: String, next_lose: String, next_
|
||||||
game_goal = goal
|
game_goal = goal
|
||||||
if(difficulty == "hard"):
|
if(difficulty == "hard"):
|
||||||
game_difficulty = "hard"
|
game_difficulty = "hard"
|
||||||
game_speed = 2
|
|
||||||
else:
|
else:
|
||||||
game_difficulty = "easy"
|
game_difficulty = "easy"
|
||||||
game_version = version
|
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)
|
set_mode(mode)
|
||||||
foreground.init(game_speed)
|
background.init(game_version)
|
||||||
spawner.init(game_speed)
|
foreground.init(game_speed, game_version)
|
||||||
|
spawner.init(game_difficulty, game_version)
|
||||||
scoreUI.init(mode, goal)
|
scoreUI.init(mode, goal)
|
||||||
next_timeline_lose = next_lose
|
next_timeline_lose = next_lose
|
||||||
next_timeline_win = next_win
|
next_timeline_win = next_win
|
||||||
|
@ -76,7 +77,7 @@ func start():
|
||||||
yield(t, "timeout")
|
yield(t, "timeout")
|
||||||
yield(t, "timeout")
|
yield(t, "timeout")
|
||||||
start_timer_UI.hide()
|
start_timer_UI.hide()
|
||||||
spawner.start(game_difficulty, game_version)
|
spawner.start()
|
||||||
if game_mode == "score":
|
if game_mode == "score":
|
||||||
scoreUI.start(0)
|
scoreUI.start(0)
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -2,8 +2,11 @@ extends Sprite
|
||||||
|
|
||||||
export var scroll_speed = 9
|
export var scroll_speed = 9
|
||||||
|
|
||||||
|
export(Array, Texture) var textures := []
|
||||||
|
|
||||||
var speed_offset : float = 0
|
var speed_offset : float = 0
|
||||||
var moving = false
|
var moving = false
|
||||||
|
var game_version := 0 setget set_game_version
|
||||||
|
|
||||||
signal viewport_entered(object)
|
signal viewport_entered(object)
|
||||||
signal viewport_exited(object)
|
signal viewport_exited(object)
|
||||||
|
@ -26,6 +29,14 @@ func move():
|
||||||
position.x -= scroll_speed + speed_offset
|
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:
|
func _on_VisibilityNotifier2D_viewport_entered(viewport: Viewport) -> void:
|
||||||
emit_signal("viewport_entered", self)
|
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/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/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]
|
[sub_resource type="Shader" id=1]
|
||||||
code = "shader_type canvas_item;
|
code = "shader_type canvas_item;
|
||||||
|
@ -28,6 +29,7 @@ script = ExtResource( 2 )
|
||||||
__meta__ = {
|
__meta__ = {
|
||||||
"_editor_description_": ""
|
"_editor_description_": ""
|
||||||
}
|
}
|
||||||
|
textures = [ ExtResource( 1 ), ExtResource( 3 ) ]
|
||||||
|
|
||||||
[node name="VisibilityNotifier2D" type="VisibilityNotifier2D" parent="."]
|
[node name="VisibilityNotifier2D" type="VisibilityNotifier2D" parent="."]
|
||||||
position = Vector2( 1930, 540 )
|
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/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"]
|
[node name="background" type="Control"]
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
|
script = ExtResource( 2 )
|
||||||
__meta__ = {
|
__meta__ = {
|
||||||
"_edit_use_anchors_": false
|
"_edit_use_anchors_": false
|
||||||
}
|
}
|
||||||
|
textures = [ ExtResource( 1 ), ExtResource( 3 ) ]
|
||||||
|
|
||||||
[node name="TextureRect" type="TextureRect" parent="."]
|
[node name="TextureRect" type="TextureRect" parent="."]
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
|
|
|
@ -2,35 +2,39 @@ extends Node2D
|
||||||
|
|
||||||
var sprite_scene = preload("res://mini-game/scenes/decor/ForegroundSprite.tscn")
|
var sprite_scene = preload("res://mini-game/scenes/decor/ForegroundSprite.tscn")
|
||||||
|
|
||||||
var textures := []
|
var sprites := []
|
||||||
|
var game_version := 0
|
||||||
var moving := false
|
var moving := false
|
||||||
|
|
||||||
var speed_offset : float = 0 setget set_speed_offset
|
var speed_offset : float = 0 setget set_speed_offset
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
textures.append($ForegroundSprite)
|
sprites.append($ForegroundSprite)
|
||||||
stop()
|
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)
|
set_speed_offset(speed)
|
||||||
|
|
||||||
|
|
||||||
func set_speed_offset(new_value: float):
|
func set_speed_offset(new_value: float):
|
||||||
speed_offset = new_value
|
speed_offset = new_value
|
||||||
for t in textures:
|
for t in sprites:
|
||||||
t.speed_offset = speed_offset
|
t.speed_offset = speed_offset
|
||||||
|
|
||||||
|
|
||||||
func stop():
|
func stop():
|
||||||
moving = false
|
moving = false
|
||||||
for t in textures:
|
for t in sprites:
|
||||||
t.stop()
|
t.stop()
|
||||||
|
|
||||||
|
|
||||||
func start():
|
func start():
|
||||||
moving = true
|
moving = true
|
||||||
for t in textures:
|
for t in sprites:
|
||||||
t.start()
|
t.start()
|
||||||
|
|
||||||
|
|
||||||
|
@ -42,10 +46,11 @@ func _on_ForegroundSprite_viewport_entered(object: Sprite) -> void:
|
||||||
new_sprite.connect("viewport_exited", self, "_on_ForegroundSprite_viewport_exited")
|
new_sprite.connect("viewport_exited", self, "_on_ForegroundSprite_viewport_exited")
|
||||||
if moving:
|
if moving:
|
||||||
new_sprite.start()
|
new_sprite.start()
|
||||||
|
new_sprite.game_version = game_version
|
||||||
add_child(new_sprite)
|
add_child(new_sprite)
|
||||||
textures.append(new_sprite)
|
sprites.append(new_sprite)
|
||||||
|
|
||||||
|
|
||||||
func _on_ForegroundSprite_viewport_exited(object: Sprite) -> void:
|
func _on_ForegroundSprite_viewport_exited(object: Sprite) -> void:
|
||||||
textures.remove(textures.find(object))
|
sprites.remove(sprites.find(object))
|
||||||
object.queue_free()
|
object.queue_free()
|
||||||
|
|
|
@ -17,9 +17,19 @@ onready var items := $items
|
||||||
|
|
||||||
var last_timer_random : float = 1
|
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()
|
update_timer()
|
||||||
set_speed_offset(speed)
|
set_speed_offset(0)
|
||||||
|
|
||||||
|
|
||||||
func set_speed_offset(new_value: float):
|
func set_speed_offset(new_value: float):
|
||||||
|
@ -53,17 +63,7 @@ func update_timer():
|
||||||
timer.wait_time = timer_speed + random
|
timer.wait_time = timer_speed + random
|
||||||
|
|
||||||
|
|
||||||
func start(difficulty, version):
|
func start():
|
||||||
match difficulty:
|
|
||||||
"easy":
|
|
||||||
timer_speed = 1
|
|
||||||
random_threshold = 40
|
|
||||||
"hard":
|
|
||||||
timer_speed = 0.9
|
|
||||||
random_threshold = 25
|
|
||||||
_:
|
|
||||||
pass
|
|
||||||
scenes_offset = version
|
|
||||||
timer.start()
|
timer.start()
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue