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 start_timer_UI := $startTimerUI
|
||||
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_win := ""
|
||||
|
@ -21,6 +22,10 @@ var game_version = 0
|
|||
|
||||
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():
|
||||
pass
|
||||
|
@ -30,11 +35,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)
|
||||
set_mode(mode)
|
||||
foreground.init(game_speed)
|
||||
spawner.init(game_speed)
|
||||
scoreUI.init(mode, goal)
|
||||
next_timeline_lose = next_lose
|
||||
next_timeline_win = next_win
|
||||
|
@ -75,14 +83,16 @@ func start():
|
|||
scoreUI.start(game_goal)
|
||||
t.queue_free()
|
||||
if game_mode == "time":
|
||||
timer.start()
|
||||
score_timer.start()
|
||||
speed_timer.start()
|
||||
|
||||
|
||||
func stop():
|
||||
foreground.stop()
|
||||
player.stop()
|
||||
spawner.stop()
|
||||
timer.stop()
|
||||
score_timer.stop()
|
||||
speed_timer.stop()
|
||||
|
||||
|
||||
func on_win():
|
||||
|
@ -102,6 +112,7 @@ func _on_player_die() -> void:
|
|||
func _on_player_hit() -> void:
|
||||
pass
|
||||
|
||||
|
||||
func update_score():
|
||||
current_goal += 1
|
||||
scoreUI.update_score(current_goal)
|
||||
|
@ -109,9 +120,21 @@ func update_score():
|
|||
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:
|
||||
update_score()
|
||||
|
||||
|
||||
func _on_Timer_timeout() -> void:
|
||||
func _on_ScoreTimer_timeout() -> void:
|
||||
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="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="hit" from="player" to="." method="_on_player_hit"]
|
||||
[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
|
||||
|
||||
var speed_offset : float = 0
|
||||
var moving = false
|
||||
|
||||
signal viewport_entered(object)
|
||||
|
@ -22,7 +23,7 @@ func _physics_process(delta):
|
|||
|
||||
|
||||
func move():
|
||||
position.x -= scroll_speed
|
||||
position.x -= scroll_speed + speed_offset
|
||||
|
||||
|
||||
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 moving := false
|
||||
|
||||
var speed_offset : float = 0 setget set_speed_offset
|
||||
|
||||
func _ready():
|
||||
textures.append($ForegroundSprite)
|
||||
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():
|
||||
moving = false
|
||||
for t in textures:
|
||||
|
@ -25,6 +37,7 @@ func start():
|
|||
func _on_ForegroundSprite_viewport_entered(object: Sprite) -> void:
|
||||
var new_sprite = sprite_scene.instance()
|
||||
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_exited", self, "_on_ForegroundSprite_viewport_exited")
|
||||
if moving:
|
||||
|
|
|
@ -3,6 +3,7 @@ extends Node2D
|
|||
export var sprite_texture : Texture
|
||||
export var type := "bonus" setget , get_type
|
||||
export var scroll_speed = 9
|
||||
var speed_offset : float = 0
|
||||
|
||||
onready var sprite = $Sprite
|
||||
onready var audio_stream = $AudioStreamPlayer
|
||||
|
@ -32,7 +33,7 @@ func get_type():
|
|||
|
||||
|
||||
func move():
|
||||
self.position.x -= scroll_speed
|
||||
self.position.x -= scroll_speed + speed_offset
|
||||
|
||||
|
||||
func pickup():
|
||||
|
|
|
@ -9,11 +9,22 @@ var end_of_game = false
|
|||
var timer_speed = 0.99
|
||||
var random_threshold = 50
|
||||
var scenes_offset = 0
|
||||
var speed_offset : float = 0 setget set_speed_offset
|
||||
|
||||
onready var timer := $Timer
|
||||
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():
|
||||
random_scene.randomize()
|
||||
scene_index = random_scene.randi_range(1,100)
|
||||
|
@ -22,6 +33,7 @@ func _on_Timer_timeout():
|
|||
else:
|
||||
scene_index = 0
|
||||
var tmp = scenes[scene_index+scenes_offset*2].instance()
|
||||
tmp.speed_offset = speed_offset
|
||||
items.add_child(tmp)
|
||||
last_object = tmp
|
||||
if(timer.wait_time <= 1):
|
||||
|
@ -46,6 +58,6 @@ func start(difficulty, version):
|
|||
|
||||
func stop():
|
||||
timer.stop()
|
||||
for obj in $items.get_children():
|
||||
for obj in items.get_children():
|
||||
remove_child(obj)
|
||||
obj.queue_free()
|
||||
|
|
Loading…
Reference in a new issue