
ЖОВТЯК 4016 КУРСОВАЯ
.pdfПРИЛОЖЕНИЕ Д
Скрпит основной сцены main.gd extends Node2D
onready var tab = get_node("Tab")
onready var barrier_spawner = get_node("barrier_spawner") onready var ground = get_node("ground/AnimationPlayer") onready var menu = get_node("Menu")
onready var char1 = get_node("bird/Sprite") onready var char2 = get_node("bird/Sprite2") onready var char3 = get_node("bird/Sprite3")
onready var label2 = get_node("Menu/Start_text/StartMessage/PriceTwo") onready var label3 = get_node("Menu/Start_text/StartMessage/PriceThree")
const save_file_path = "user://savedata.save" var score = 0 setget set_score
var highscore = 0
func _ready():
var save = load_highscore() barrier_spawner.connect("builded_barrier", self, "on_barrier_created") load_highscore()
$swoosh.play() if save >= 30:
label2.hide() if save >= 60:
label3.hide()
func new_game():
31
self.score = 0 barrier_spawner.start()
func player_score(): self.score += 1
func set_score(new_score): score = new_score tab.change_score(score)
func on_barrier_created(obs): obs.connect("score", self, "player_score")
func _on_DeathZone_body_entered(body): if body is bird:
if body.has_method("die"): body.die()
func _on_bird_died(): game_over()
func game_over(): barrier_spawner.stop() ground.stop()
get_tree().call_group("barriers", "set_physics_process", false ) if score > highscore:
highscore = score save_highscore()
32
menu.init_game_over_menu(score, highscore)
func _on_Menu_start_game(): new_game()
func save_highscore():
var save_data = File.new() save_data.open(save_file_path, File.WRITE) save_data.store_var(highscore) save_data.close()
func load_highscore():
var save_data = File.new()
if save_data.file_exists(save_file_path): save_data.open(save_file_path, File.READ) highscore = save_data.get_var(highscore) save_data.close()
return highscore
func _on_ctchar1_pressed(): $click.play()
char1.show()
char2.hide()
char3.hide()
func _on_ctchar2_pressed(): var save = load_highscore() if save >= 30:
$click.play()
33
char1.hide()
char2.show()
char3.hide()
func _on_ctchar3_pressed(): var save = load_highscore() if save >= 60:
$click.play() char1.hide() char2.hide() char3.show()
34