Сейчас я расскажу о структуре программы годот Scene Instancing

Рассмотрим структуру и код примера Scene Instancing в Godot.

Рассмотрим структуру и код шара — Ball.tscn. Она примитивна: состоит из узла RigidBody с вложенными Sprite2D и CollisionShape2D. Эта сцена находится в сцене scene_instancing.tscn.

Теперь перейдём к сцене scene_instancing.tscn.

Она состоит из главного узла Node2D. Внутри него находится CanvasLayer и метка Label (с надписью о том, что клик мыши создаёт новый экземпляр шара). К корневому Node2D также подключён ещё один узел `Node2D» — к нему прикреплён код, который мы разберём позже.

Кроме того, к главному узлу присоединён узел StaticBody2D» с вложенными CollisionPolygon2DиPolygon2D. Также к Node2D» добавлены 10 экземпляров шара (Ball) и камера (Camera2D).

Рассмотрим код, который привязан к вложенному узлу Node2D.

extends Node2D


@export var ball_scene: PackedScene = preload("res://ball.tscn")


func _unhandled_input(input_event: InputEvent) -> void:
if input_event.is_echo():
return

if input_event is InputEventMouseButton and input_event.is_pressed():
if input_event.button_index == MOUSE_BUTTON_LEFT:
spawn(get_global_mouse_position())


func spawn(spawn_global_position: Vector2) -> void:
var instance: Node2D = ball_scene.instantiate()
instance.global_position = spawn_global_position
add_child(instance)

 

Этот код можно превратить в псевдокод — то есть в код, написанный на человеческом языке и состоящий из понятных команд. Зачем это нужно? Для более глубокого понимания кода, а также для возможности перенести результат в свой проект или в другой движок.

Загружаем шарик

Функция ввода
Если Мы зажали кнопку мыши и не отпускаем
Выход
Если нажали на кнопку мыши
Если кнопка мыши левая
Вызываем функцию создания шариков

Функция создания шариков
Создание экземпляра узла шарика из шарика
Приравниваем глобальную позицию шарику месту клика мышкой
Добавить дочерний узел

Вот мы превратили программу в псевдокод. Просто и понятно.

Конец.

В этом туториале я разобрал код и структуру примера Scene Instancing в Godot. В следующем туториале я восстановлю его по шагам. Спасибо за внимание.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх