Экспорт

Обзор

Теперь у вас есть рабочая игра, вы, вероятно, хотите поделиться своим успехом с другими. Однако это не практично просить ваших друзей, чтобы скачали Godot, для открытия вашего проекта с игрой. Вместо этого, вы можете экспортировать ваш проект, превращая его в «пакет», который может открыть любой пользователь.

Способ экспорта вашей игры зависит от того, на какую платформу вы ориентируетесь. В этом уроке вы научитесь экспортировать «Dodge the Creeps» игру для различных платформ. Во-первых, нам нужно внести некоторые изменения в работе игры.

Примечание

Если вы не сделали «Dodge the Creeps» для себя, пожалуйста, прочтите Ваша Первая Игра, прежде чем продолжить этот урок.

Подготовка проекта

В «Dodge the Creeps» мы использовали клавиши управления для перемещения игрока. Это хорошо, если ваша игра для PC, но на телефоне или планшете, требуется поддержка сенсорного ввода. Потому что событие Click может быть обрабатываться так же, как сенсорное событие, мы превращаем игру в click-and-move (клик и перемещение).

По умолчанию Godot эмулирует ввод мыши из ввода тача. Это означает что все что закодировано на событие мыши, также будет вызываться на событие тача. Если вы хотите отключить такое поведение по какой-то причине, или эмулировать тач из ввода мыши, вы можете это сделать в «Project Settings» в Input Devices и Pointing

../../_images/export_touchsettings.png

Before we change the input method, in the project settings go to Display, then click on Window. In the Stretch options, set Mode to «2d» and Aspect to «keep». This ensures that the game scales consistently on different sized screens.

../../_images/export_stretchsettings.png

Далее, нужно модифицировать скрипт «Player.gd», для того, чтобы изменить метод ввода. Мы уберем управление клавишами и сделаем так, чтобы игрок двигался к цели, которая задается событием тапа по экрану (или кликом).

Вот полный скрипт для игрока, с комментариями, которые мы изменили:

extends Area2D

signal hit

export var speed = 400
var velocity = Vector2()
var screen_size
# Add this variable to hold the clicked position.
var target = Vector2()

func _ready():
    hide()
    screen_size = get_viewport_rect().size

func start(pos):
    position = pos
    # Initial target is the start position.
    target = pos
    show()
    $CollisionShape2D.disabled = false

# Change the target whenever a touch event happens.
func _input(event):
    if event is InputEventScreenTouch and event.pressed:
        target = event.position

func _process(delta):
    # Move towards the target and stop when close.
    if position.distance_to(target) > 10:
        velocity = (target - position).normalized() * speed
    else:
        velocity = Vector2()

# Remove keyboard controls.
#    if Input.is_action_pressed("ui_right"):
#       velocity.x += 1
#    if Input.is_action_pressed("ui_left"):
#        velocity.x -= 1
#    if Input.is_action_pressed("ui_down"):
#        velocity.y += 1
#    if Input.is_action_pressed("ui_up"):
#        velocity.y -= 1

    if velocity.length() > 0:
        velocity = velocity.normalized() * speed
        $AnimatedSprite.play()
    else:
        $AnimatedSprite.stop()

    position += velocity * delta
    # We don't need to clamp the player's position
    # because you can't click outside the screen.
    # position.x = clamp(position.x, 0, screensize.x)
    # position.y = clamp(position.y, 0, screensize.y)

    if velocity.x != 0:
        $AnimatedSprite.animation = "right"
        $AnimatedSprite.flip_v = false
        $AnimatedSprite.flip_h = velocity.x < 0
    elif velocity.y != 0:
        $AnimatedSprite.animation = "up"
        $AnimatedSprite.flip_v = velocity.y > 0

func _on_Player_body_entered( body ):
    hide()
    emit_signal("hit")
    $CollisionShape2D.set_deferred("disabled", true)

Экспорт шаблонов

Чтобы экспортировать, вам потребуется скачать шаблоны экспорта из http://godotengine.org/download. Эти шаблоны представляют собой оптимизированные версии движка без редактора скомпилированного для каждой платформы. Вы также может скачать их в самом Godot кликнув на Редактор -> Управление шаблонами экспорта:

../../_images/export_template_menu.png

В окне которое откроется, вы может нажать «Скачать» чтобы получить шаблон для версии соответствующей вашей версии Godot.

../../_images/export_template_manager.png

Примечание

Если вы обновляете Godot, необходимо скачать шаблоны, соответствующие вашей новой версии, иначе работа экспортированых проектов может быть нестабильна.

Экспорт предустановок(пресетов)

Теперь можно изменить настройки экспорта, нажав на Project -> Export:

../../_images/export_presets_window.png

Создайте новую предустановку экспорта нажав на «Добавить…» и выбрав платформу. Вы можете создать сколько угодно предустановок с различными настройками.

Внизу окна есть две кнопки. «Экпорт PCK/ZIP» лишь создает упакованную версию данных вашего проекта. Исполняемый файл при этом не включается, поэтому проект не может быть запущен самостоятельно.

Вторая кнопка, «Экпорт Проекта», создает полную исполняемую версию вашего проекта, на подобию `.apk`на Android или `.exe`на Windows.

Во вкладках «Ресурсы» и «Особенности» вы можете настроить экспорт игры для каждой платформы. Эти настройки пока оставим.

Экспортирование на платформу

В данном разделе, мы пройдем через процесс для каждой платформы, включая любое дополнительное программное обеспечение или требования которые могут понадобиться.

PC (Linux/macOS/Windows)

Экспорт на PC платформы работает одинаково для трех поддерживаемых операционных систем. Откройте окно экспорта, кликните «Добавить..» и выберите систему из выпадающего списка. После кликните «Экспорт Проекта» и выберите имя и папку, в которой вы хотите сохранить файл. Выберите место снаружи вашей папки с проектом.

Кликните «Сохранить» и движок построит экспортируемые файлы.

Примечание

При экспорте на MacOS, если вы экспортируете на компьютере с MacOS, вы получите файл .dmg, а если используете Linux или Windows то результатом будет .zip. В любом случае, сжатый файл содержит в себе .app, который вы можете запустить двойным нажатием.

Примечание

На Windows, если вы хотите чтобы экспортируемый вами запускаемый файл имел иконку отличную от той, что установлена по умолчанию, вам необходимо изменить ее вручную. Смотрите: Changing application icon for Windows.

Android

Совет

Мобильные устройства обладают широким спектром возможностей, и в большинстве случаев установленные по умолчанию настойки Годо будут работать. Однако, временами мобильная разработка это скорее искусство, чем наука, и потому порой вам придется экспериментировать и искать помощи для того чтобы все работало.

Прежде чем вы сможете экспортировать свой проект на Android, вы должны загрузить следующее программное обеспечение:

При запуске Android Studio в первый раз, нажмите на кнопки Настройки -> SDK Manager и установите «Android SDK Platform Tools». Таким образом вы установите adb command-line tool, который Годо использует для взаимодействия с вашим устройством.

Далее создайте хранилище ключей для отладки, выполнив следующую команду в консоли вашей системы:

keytool -keyalg RSA -genkeypair -alias androiddebugkey -keypass android -keystore debug.keystore -storepass android -dname "CN=Android Debug,O=Android,C=US" -validity 9999

Нажмите на Редактор -> Настройки редактора в Годо, и затем выберите раздел Export/Android. Здесь вам нужно установить пути к приложениям Android SDK на вашей системе и расположение хранилища ключей, который вы только что создали.

../../_images/export_editor_android_settings.png

Теперь вы готовы экспортировать. Нажмите на Проект-> Экспорт и добавьте предустановку для Android (см. выше).

Нажмите кнопку «Экспортировать проект», и Godot построит файл APK, который вы сможете загрузить на своё устройство. Чтобы сделать это с помощью командной строки, выполните следующую команду:

adb install dodge.apk

Примечание

Вашему устройству может потребоваться нахождение в «режиме разработчика». Обратитесь к документации устройства для получения более подробной информации.

Если ваша система это поддерживает, подключение совместного Андроид устройства вызовет появление кнопки «Развертывание в один клик» в области кнопок игрового окна Godot:

../../_images/export_android_oneclick.png

Нажатие этой кнопки приводит к построению APK и к копированию его на Ваше устройство в один шаг.

iOS

Примечание

Чтобы создать игру для iOS, вы должны иметь компьютер с операционной системой MacOS с установленным Xcode.

Перед экспортом, вы должны изменить некоторые параметры . Во-первых, «App Store Team Id» вы можете найти, войдя вашу учетную запись разработчика Apple и посмотреть в разделе «Membership» .

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

../../_images/export_ios_settings.png

Нажмите кнопку «Экспортировать проект» и выберите папку назначения.

Как только вы успешно экспортируете проект, вы обнаружите, что в вашем выбранном месте созданы следующие папки и файлы:

../../_images/export_xcode_project_folders.png

Теперь вы можете открыть в Xcode и создать проект для iOS. Порядок сборки Xcode выходит за рамки данного урока. См. https://help.apple.com/xcode/mac/current/#/devc8c2a6be1 для получения дополнительной информации.

HTML5 (web)

Нажмите кнопку «Экспорт проекта» на базе предустановки HTML5 . Нам не нужно изменять какие-либо параметры по умолчанию.

Когда экспорт будет завершен, будет создана папка, содержащая следующие файлы:

../../_images/export_web_files.png

Просмотр файла .html в браузере позволяет вам воспроизводить игру. Однако, вы не сможете открыть файл напрямую, т.к. он должен обслуживаться веб-сервером. Если у вас на компьютере нет такого сервера, вы можете использовать Google, чтобы найти варианты для вашей операционной системы.

В адресной строке браузера укажите URL расположения HTML-файла. Возможно, вам придётся немного подождать, пока игра загрузится, и вы увидите стартовый экран.

../../_images/export_web_example.png

Если что-то пойдёт не так, окно консоли под игрой покажет в чём проблема. Вы можете отключить её, задав параметр «Export With Debug» (экспорт с отладкой), когда экспортируете проект.

Примечание

Большинство браузеров не поддерживают WASM. Firefox и Chrome обладают такой поддержкой, но вы можете обнаружить некоторые вещи, которые все ещё не работают. Убедитесь, что ваш браузер обновлен до найсвежайшей версии и отправляйте отчет об ошибках, которые вы обнаружили, в репозиторий Godot Github -.