12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- extends Node2D
-
- export (Array,PackedScene) var scenes
-
- var random_scene = RandomNumberGenerator.new()
- var random_timer = RandomNumberGenerator.new()
- var scene_index = 0;
- var last_object
- var end_of_game = false
- var timer_speed : float = 1
- 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
-
- var last_timer_random : float = 1
-
- 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(0)
-
-
- 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)
- if(scene_index >= random_threshold):
- scene_index = 1
- 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
- update_timer()
-
-
- func update_timer():
- random_timer.randomize()
- var random
- if last_timer_random < -0.5:
- random = random_scene.randf_range(-0.4, 1.5)
- else:
- random = random_scene.randf_range(-0.8, 1.5)
- last_timer_random = random
- timer.wait_time = timer_speed + random
-
-
- func start():
- timer.start()
-
-
- func stop():
- timer.stop()
- for obj in items.get_children():
- obj.queue_free()
|