progressively increase game speed
This commit is contained in:
parent
51341019b2
commit
ce56d3e2f6
6 changed files with 62 additions and 9 deletions
|
@ -8,7 +8,8 @@ onready var player := $player
|
||||||
onready var scoreUI := $scoreUI
|
onready var scoreUI := $scoreUI
|
||||||
onready var start_timer_UI := $startTimerUI
|
onready var start_timer_UI := $startTimerUI
|
||||||
onready var instructionsUI := $instructionsUI
|
onready var instructionsUI := $instructionsUI
|
||||||
onready var timer := $Timer
|
onready var score_timer := $ScoreTimer
|
||||||
|
onready var speed_timer := $SpeedTimer
|
||||||
|
|
||||||
var next_timeline_lose := ""
|
var next_timeline_lose := ""
|
||||||
var next_timeline_win := ""
|
var next_timeline_win := ""
|
||||||
|
@ -21,6 +22,10 @@ var game_version = 0
|
||||||
|
|
||||||
var MUSIC = "res://music/mini_jeu.ogg"
|
var MUSIC = "res://music/mini_jeu.ogg"
|
||||||
|
|
||||||
|
var game_speed = 0 setget set_game_speed
|
||||||
|
|
||||||
|
export var speed_increments := 0.1
|
||||||
|
export var max_speed := 8
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
pass
|
pass
|
||||||
|
@ -30,11 +35,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)
|
||||||
set_mode(mode)
|
set_mode(mode)
|
||||||
|
foreground.init(game_speed)
|
||||||
|
spawner.init(game_speed)
|
||||||
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
|
||||||
|
@ -75,14 +83,16 @@ func start():
|
||||||
scoreUI.start(game_goal)
|
scoreUI.start(game_goal)
|
||||||
t.queue_free()
|
t.queue_free()
|
||||||
if game_mode == "time":
|
if game_mode == "time":
|
||||||
timer.start()
|
score_timer.start()
|
||||||
|
speed_timer.start()
|
||||||
|
|
||||||
|
|
||||||
func stop():
|
func stop():
|
||||||
foreground.stop()
|
foreground.stop()
|
||||||
player.stop()
|
player.stop()
|
||||||
spawner.stop()
|
spawner.stop()
|
||||||
timer.stop()
|
score_timer.stop()
|
||||||
|
speed_timer.stop()
|
||||||
|
|
||||||
|
|
||||||
func on_win():
|
func on_win():
|
||||||
|
@ -102,6 +112,7 @@ func _on_player_die() -> void:
|
||||||
func _on_player_hit() -> void:
|
func _on_player_hit() -> void:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
func update_score():
|
func update_score():
|
||||||
current_goal += 1
|
current_goal += 1
|
||||||
scoreUI.update_score(current_goal)
|
scoreUI.update_score(current_goal)
|
||||||
|
@ -109,9 +120,21 @@ func update_score():
|
||||||
on_win()
|
on_win()
|
||||||
|
|
||||||
|
|
||||||
|
func set_game_speed(new_value: float):
|
||||||
|
game_speed = new_value
|
||||||
|
if game_speed > max_speed:
|
||||||
|
game_speed = max_speed
|
||||||
|
foreground.speed_offset = game_speed
|
||||||
|
spawner.speed_offset = game_speed
|
||||||
|
|
||||||
|
|
||||||
func _on_player_score() -> void:
|
func _on_player_score() -> void:
|
||||||
update_score()
|
update_score()
|
||||||
|
|
||||||
|
|
||||||
func _on_Timer_timeout() -> void:
|
func _on_ScoreTimer_timeout() -> void:
|
||||||
update_score()
|
update_score()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_SpeedTimer_timeout() -> void:
|
||||||
|
set_game_speed(game_speed + speed_increments)
|
||||||
|
|
|
@ -28,9 +28,12 @@ position = Vector2( 183.674, 888.367 )
|
||||||
|
|
||||||
[node name="instructionsUI" parent="." instance=ExtResource( 8 )]
|
[node name="instructionsUI" parent="." instance=ExtResource( 8 )]
|
||||||
|
|
||||||
[node name="Timer" type="Timer" parent="."]
|
[node name="ScoreTimer" type="Timer" parent="."]
|
||||||
|
|
||||||
|
[node name="SpeedTimer" type="Timer" parent="."]
|
||||||
|
|
||||||
[connection signal="die" from="player" to="." method="_on_player_die"]
|
[connection signal="die" from="player" to="." method="_on_player_die"]
|
||||||
[connection signal="hit" from="player" to="." method="_on_player_hit"]
|
[connection signal="hit" from="player" to="." method="_on_player_hit"]
|
||||||
[connection signal="score" from="player" to="." method="_on_player_score"]
|
[connection signal="score" from="player" to="." method="_on_player_score"]
|
||||||
[connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"]
|
[connection signal="timeout" from="ScoreTimer" to="." method="_on_ScoreTimer_timeout"]
|
||||||
|
[connection signal="timeout" from="SpeedTimer" to="." method="_on_SpeedTimer_timeout"]
|
||||||
|
|
|
@ -2,6 +2,7 @@ extends Sprite
|
||||||
|
|
||||||
export var scroll_speed = 9
|
export var scroll_speed = 9
|
||||||
|
|
||||||
|
var speed_offset : float = 0
|
||||||
var moving = false
|
var moving = false
|
||||||
|
|
||||||
signal viewport_entered(object)
|
signal viewport_entered(object)
|
||||||
|
@ -22,7 +23,7 @@ func _physics_process(delta):
|
||||||
|
|
||||||
|
|
||||||
func move():
|
func move():
|
||||||
position.x -= scroll_speed
|
position.x -= scroll_speed + speed_offset
|
||||||
|
|
||||||
|
|
||||||
func _on_VisibilityNotifier2D_viewport_entered(viewport: Viewport) -> void:
|
func _on_VisibilityNotifier2D_viewport_entered(viewport: Viewport) -> void:
|
||||||
|
|
|
@ -5,11 +5,23 @@ var sprite_scene = preload("res://mini-game/scenes/decor/ForegroundSprite.tscn")
|
||||||
var textures := []
|
var textures := []
|
||||||
var moving := false
|
var moving := false
|
||||||
|
|
||||||
|
var speed_offset : float = 0 setget set_speed_offset
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
textures.append($ForegroundSprite)
|
textures.append($ForegroundSprite)
|
||||||
stop()
|
stop()
|
||||||
|
|
||||||
|
|
||||||
|
func init(speed: float):
|
||||||
|
set_speed_offset(speed)
|
||||||
|
|
||||||
|
|
||||||
|
func set_speed_offset(new_value: float):
|
||||||
|
speed_offset = new_value
|
||||||
|
for t in textures:
|
||||||
|
t.speed_offset = speed_offset
|
||||||
|
|
||||||
|
|
||||||
func stop():
|
func stop():
|
||||||
moving = false
|
moving = false
|
||||||
for t in textures:
|
for t in textures:
|
||||||
|
@ -25,6 +37,7 @@ func start():
|
||||||
func _on_ForegroundSprite_viewport_entered(object: Sprite) -> void:
|
func _on_ForegroundSprite_viewport_entered(object: Sprite) -> void:
|
||||||
var new_sprite = sprite_scene.instance()
|
var new_sprite = sprite_scene.instance()
|
||||||
new_sprite.position = Vector2(1920, 0)
|
new_sprite.position = Vector2(1920, 0)
|
||||||
|
new_sprite.speed_offset = speed_offset
|
||||||
new_sprite.connect("viewport_entered", self, "_on_ForegroundSprite_viewport_entered")
|
new_sprite.connect("viewport_entered", self, "_on_ForegroundSprite_viewport_entered")
|
||||||
new_sprite.connect("viewport_exited", self, "_on_ForegroundSprite_viewport_exited")
|
new_sprite.connect("viewport_exited", self, "_on_ForegroundSprite_viewport_exited")
|
||||||
if moving:
|
if moving:
|
||||||
|
|
|
@ -3,6 +3,7 @@ extends Node2D
|
||||||
export var sprite_texture : Texture
|
export var sprite_texture : Texture
|
||||||
export var type := "bonus" setget , get_type
|
export var type := "bonus" setget , get_type
|
||||||
export var scroll_speed = 9
|
export var scroll_speed = 9
|
||||||
|
var speed_offset : float = 0
|
||||||
|
|
||||||
onready var sprite = $Sprite
|
onready var sprite = $Sprite
|
||||||
onready var audio_stream = $AudioStreamPlayer
|
onready var audio_stream = $AudioStreamPlayer
|
||||||
|
@ -32,7 +33,7 @@ func get_type():
|
||||||
|
|
||||||
|
|
||||||
func move():
|
func move():
|
||||||
self.position.x -= scroll_speed
|
self.position.x -= scroll_speed + speed_offset
|
||||||
|
|
||||||
|
|
||||||
func pickup():
|
func pickup():
|
||||||
|
|
|
@ -9,11 +9,22 @@ var end_of_game = false
|
||||||
var timer_speed = 0.99
|
var timer_speed = 0.99
|
||||||
var random_threshold = 50
|
var random_threshold = 50
|
||||||
var scenes_offset = 0
|
var scenes_offset = 0
|
||||||
|
var speed_offset : float = 0 setget set_speed_offset
|
||||||
|
|
||||||
onready var timer := $Timer
|
onready var timer := $Timer
|
||||||
onready var items := $items
|
onready var items := $items
|
||||||
|
|
||||||
|
|
||||||
|
func init(speed: float):
|
||||||
|
set_speed_offset(speed)
|
||||||
|
|
||||||
|
|
||||||
|
func set_speed_offset(new_value: float):
|
||||||
|
speed_offset = new_value
|
||||||
|
for obj in items.get_children():
|
||||||
|
obj.speed_offset = speed_offset
|
||||||
|
|
||||||
|
|
||||||
func _on_Timer_timeout():
|
func _on_Timer_timeout():
|
||||||
random_scene.randomize()
|
random_scene.randomize()
|
||||||
scene_index = random_scene.randi_range(1,100)
|
scene_index = random_scene.randi_range(1,100)
|
||||||
|
@ -22,6 +33,7 @@ func _on_Timer_timeout():
|
||||||
else:
|
else:
|
||||||
scene_index = 0
|
scene_index = 0
|
||||||
var tmp = scenes[scene_index+scenes_offset*2].instance()
|
var tmp = scenes[scene_index+scenes_offset*2].instance()
|
||||||
|
tmp.speed_offset = speed_offset
|
||||||
items.add_child(tmp)
|
items.add_child(tmp)
|
||||||
last_object = tmp
|
last_object = tmp
|
||||||
if(timer.wait_time <= 1):
|
if(timer.wait_time <= 1):
|
||||||
|
@ -46,6 +58,6 @@ func start(difficulty, version):
|
||||||
|
|
||||||
func stop():
|
func stop():
|
||||||
timer.stop()
|
timer.stop()
|
||||||
for obj in $items.get_children():
|
for obj in items.get_children():
|
||||||
remove_child(obj)
|
remove_child(obj)
|
||||||
obj.queue_free()
|
obj.queue_free()
|
||||||
|
|
Loading…
Reference in a new issue