
- •Введение
- •Постановка задачи
- •Основные положение и аспекты разработки
- •Основная часть
- •Создание персонажа.
- •Создание игрового барьера, генератора игровых препятствий и земли.
- •Реализация стартового, прощального меню и счетчика очков.
- •Создание основной сцены игры, главного меню.
- •Приложение а
- •Приложение б
- •Приложение в
- •Приложение г
- •Приложение д
Приложение д
Скрпит основной сцены 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():
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()
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()
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()