### 1. Создание новой сцены
1. **Создайте новую сцену** в Godot и добавьте Node2D как корневой узел.
2. **Добавьте Control** как дочерний элемент Node2D для размещения элементов интерфейса.
### 2. Создание контейнера для инвентаря
1. **Добавьте HBoxContainer** как дочерний элемент Control. Этот контейнер будет содержать слоты для предметов.
2. **Настройте HBoxContainer**:
- Установите `Size Flags` на `Fill` и `Expand` для горизонтального направления.
- Установите `Min Size` по ширине, чтобы вместить 6 слотов.
### 3. Создание слотов для предметов
1. В HBoxContainer добавьте 6 **TextureButton** (или **TextureRect** для более простой реализации).
2. **Настройте каждый слот**:
- Установите одинаковый размер для всех слотов.
- Установите `Normal` текстуру для отображения пустого слота или фона.
### 4. Скрипт для управления инвентарем
Создайте новый скрипт на GDScript и подключите его к Node2D.
extends Node2D
# Максимальное количество предметов
const MAX_ITEMS = 6
# Список предметов
var inventory = []
# Ссылка на контейнер для слотов
onready var slot_container = $Control/HBoxContainer
func _ready():
# Инициализация слотов
update_inventory_slots()
func _on_item_pickup(item_texture: Texture):
if len(inventory) < MAX_ITEMS:
inventory.append(item_texture)
update_inventory_slots()
func _on_item_drop(index: int):
if index >= 0 and index < len(inventory):
var item_texture = inventory[index]
inventory.remove_at(index)
# Создать новый спрайт на полу с данным item_texture
var dropped_item = Sprite.new()
dropped_item.texture = item_texture
dropped_item.position = position # Установите позицию в нужное место
add_child(dropped_item)
update_inventory_slots()
func update_inventory_slots():
for i in range(slot_container.get_child_count()):
var slot = slot_container.get_child(i)
if i < len(inventory):
slot.texture_normal = inventory[i]
else:
slot.texture_normal = null
### 5. Настройка взаимодействия
1. **Подключите сигнал** `pressed` каждого слота к функции выброса предмета:
- Для этого в редакторе выберите каждый `TextureButton` и подключите сигнал `pressed` к функции `_on_item_drop`.
2. **Добавьте возможность подбора предметов**:
- Например, при взаимодействии с объектом в сцене вызывайте функцию `_on_item_pickup(item_texture)` с текстурой подобранного предмета.