Godot Engine

Godot Engine

评价数不足
Создаём простую консоль
由 Ametero 制作
Простая консоль для сяких ваших дебаггерских утех
   
奖励
收藏
已收藏
取消收藏
Для чего мне вообще делать консоль?
Ну вообще консоль в играх нужна для отладки или ваших эксперементов, ну допустим в той же
Half-Life 2 берёшь, пишешь
impulse 101
и ну типо веселишься

В нашем случае мы сделаем простой обработчик команды для вывода (конфессиональную :D) слова в отладчик
Сам гайд
Создадим любой проект, создадим условно 2D-сцену (или Control для наложения в геймплее).
Добавим элемент
LineEdit

Должно выйти примерно так:



Делаем магию

Создаём скрипт и крепим на сцену (можно и на LineEdit, но желательно на сцену для глобального доступа)

В скрипте пишем примерно такую борду (поясню позже):





Затем, нажмите на LineEdit, рядом с Инспектором жмём: Node
и создаём сигнал на text_submitted

Он отправит сигнал при нажатии Enter (Дефолтно, клавиша заменяемая в настройках проекта)




После того как прикрепили скрипт и создали сигнал, можно запускать проект.
Условно введём не валидную команду:

ебатель онлайн

в консоли отладчика будет:









и введём валидную команду (выебать Себя):
Пояснения
Хто эти ваши лексемы

Лексемы - это тупо слова, но просто более научное название

По коду
extends Node2D # Получаем фичи Node2D (здесь не используется) func _on_line_edit_text_submitted(new_text: String) -> void: # Получаем сигнал от LineEdit print(new_text) # Выводим сырой текст, команды которую мы ввели var leks = [] # Массив для лексем var cooked_text = new_text.split(" ") # Разделяем текст на лексемы, определяем лексемы через пробел for arg in cooked_text: # Добавляем лексемы в массив print(arg) # выводим лексему leks.append(arg) # Добавляем лексему # обрабатываем match leks[0]: # switch-case для обработки "выебать": # команда для вывода print("Т.к. годот сосёт в форматировании строк: ") # разделил вывод от прочей шелухи print(leks[1]) # выводим ОДНО слово _: # если нет команды, то выводим print("Ебалай, такой команды нет") leks.clear() # очищаем массив
Q&A и Минусы
Q&A

Q: Зачем чистить массив A: Здесь мы используем добавление в массив, допустим мы ввели два раза команду на вывод (первый раз хотим вывести: "sleep", а во второй "insomnia"). Первый раз спокойно напишет: "sleep", а во второй раз когда мы попытаемся вывести "insomnia", то вывод будет: "sleep", т.к. мы берём 2 (индекс: 1) лексему, а вторая лексема это: "sleep".

Минусы

В этом обработчке кривая обработка вывода предложения больше одного слова, но решается легко через: for