extends Node2D var time = 0 var asteroidObj = load("res://Objects/Asteroid.tscn") var coinObj = load("res://Objects/Coin.tscn") var spawnTime var deltaSpawnTime = 1 var asteroidSpawnRepeat = 0 var hiscore = 0 var numOfCoins = 0 var lastscore = 0 var pause_button = preload("res://Images and Anims/In Game/pausebutton.png") var play_button = preload("res://Images and Anims/In Game/playbutton.png") onready var rocketNode = get_node("Rocket") func load_game(): var save_game = File.new() if not save_game.file_exists("user://savegame.save"): return save_game.open("user://savegame.save", File.READ) while save_game.get_position() < save_game.get_len(): var data = parse_json(save_game.get_line()) hiscore = data["hiscore"] numOfCoins = data["numOfCoins"] func _ready(): load_game() $CanvasLayer/PauseButton.texture_normal = play_button $CanvasLayer/PauseButton.connect("pressed", self, "_pause_game") func _process(delta): if rocketNode.collided: lastscore = $"Rocket".lastscore save_data() spawnTime = 500/get_viewport_rect().size.x * deltaSpawnTime time += delta if time > spawnTime: asteroidSpawnRepeat += 1 time = 0 if spawnTime > 300/get_viewport_rect().size.x: deltaSpawnTime *= 0.995 if has_node("Rocket"): var asteroid = asteroidObj.instance() add_child(asteroid) var spawnx = rand_range($Rocket.position.x - get_viewport_rect().size.x, $Rocket.position.x + get_viewport_rect().size.x) asteroid.position.x = spawnx if (spawnx < $Rocket.position.x - get_viewport_rect().size.x/2 or spawnx > $Rocket.position.x + get_viewport_rect().size.x/2): asteroid.position.y = rand_range($Rocket.position.y + get_viewport_rect().size.y/2, $Rocket.position.y - 2 * get_viewport_rect().size.y) else: asteroid.position.y = rand_range($Rocket.position.y - get_viewport_rect().size.y, $Rocket.position.y - 2 * get_viewport_rect().size.y) #asteroid.position.x = rand_range($Rocket.position.x - get_viewport_rect().size.x/2, $Rocket.position.x + get_viewport_rect().size.x/2) #asteroid.position.y = rand_range($Rocket.position.y - get_viewport_rect().size.y, $Rocket.position.y - 2 * get_viewport_rect().size.y) asteroid.rotation = rand_range(0, 6.28) if asteroidSpawnRepeat == 5: asteroidSpawnRepeat = 0 if has_node("Rocket"): var coin = coinObj.instance() add_child(coin) coin.position.x = rand_range($Rocket.position.x - get_viewport_rect().size.x/2, $Rocket.position.x + get_viewport_rect().size.x/2) coin.position.y = rand_range($Rocket.position.y - get_viewport_rect().size.y, $Rocket.position.y - 2 * get_viewport_rect().size.y) func save(): var save_dict = { "hiscore" : hiscore, "lastscore" : lastscore, "numOfCoins" : numOfCoins } return save_dict func _pause_game(): print(get_tree().paused) get_tree().paused = !get_tree().paused if (!get_tree().paused): $CanvasLayer/PauseButton.texture_normal = play_button else: $CanvasLayer/PauseButton.texture_normal = pause_button func save_data(): var save_game = File.new() save_game.open("user://savegame.save", File.WRITE) var data = call("save") save_game.store_line(to_json(data))