Експортування

Огляд

Тепер, коли у вас є робоча гра, ви, мабуть, хочете поділитися своїм успіхом з іншими. Однак не практично просити своїх друзів завантажити Godot лише для того, щоб вони могли відкрити ваш проєкт. Натомість ви можете експортувати свій проєкт, перетворюючи його у "пакет", який може запускати будь-хто.

Спосіб експорту вашої гри залежить від платформи, на яку ви орієнтовані. З цього уроку ви дізнаєтесь, як експортувати гру Dodge the Creeps для різних платформ. Однак спершу нам потрібно внести деякі зміни в спосіб роботи гри.

Примітка

Якщо ви ще не зробили "Dodge the Creeps", будь ласка, прочитайте Ваша перша 2D гра, перш ніж продовжувати цей урок.

Приготування проєкту

У Dodge the Creeps ми використовували клавіатуру для переміщення персонажа гравця. Це добре, якщо ваша гра грається на платформі ПК, але на телефоні, чи планшеті, вам потрібна підтримка сенсорного екрану. Оскільки подію клацання мишки можна трактувати так само, як сенсорну подію, ми перетворимо гру в стиль "click-and-move" ("клац і рух").

За замовчуванням Godot емулює введення миші з сенсорного введення. Це означає, що все що закодовано на події миші, буде працювати і на події сенсорного введення. Godot також може імітувати сенсорне введення з натискання миші, що дає нам можливість продовжувати грати в нашу гру на комп'ютері переключившись на сенсорний ввід.

У Проєкт > Параметри проєкту в розділі Input Devices(Пристрої введення) > Pointing встановіть Emulate Touch From Mouse (Емуляція дотику від миші).

../../_images/export_touchsettings.png

Нам також необхідно впевнитись, що гра масштабується корректно на різних розмірах екранів, тому в параметрах проєкту перейдіть до меню Display (Екран), натисніть Window (Вікно). У параметрах Stretch (Розтягування) встановіть для Mode (Режим) - 2d, а для Aspect (Вигляд) - keep (утримувати).

Оскільки ми вже в Window, то також встановимо під Handheld в Orientation (Орієнтація) на portrait (портретна).

../../_images/export_handheld_stretchsettings.png

Далі нам потрібно модифікувати скрипт Player.gd, щоб змінити метод введення. Ми видалимо керування клавішами та змусимо гравця рухатись до "цілі", встановленої дотиком (або клацанням мишки).

Ось повний скрипт для гравця із коментарями щодо того, що ми змінили:

extends Area2D

signal hit

export var speed = 400
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):
    var velocity = Vector2()
    # Move towards the target and stop when close.
    if position.distance_to(target) > 10:
        velocity = target - position

# 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 still need to clamp the player's position here because on devices that don't
    # match your game's aspect ratio, Godot will try to maintain it as much as possible
    # by creating black borders, if necessary.
    # Without clamp(), the player would be able to move under those borders.
    position.x = clamp(position.x, 0, screen_size.x)
    position.y = clamp(position.y, 0, screen_size.y)

    if velocity.x != 0:
        $AnimatedSprite.animation = "walk"
        $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)

Налаштування головної сцени

Головна сцена - це та, з якої буде розпочинатися ваша гра. У Проєкт -> Параметри проєкту -> Application (Застосування) -> Run, встановіть для Main Scene (Головна сцена) значення "Main.tscn", натиснувши піктограму теки та вибравши його.

Шаблони експорту

Для експорту вам потрібно завантажити шаблони експорту з http://godotengine.org/download. Ці шаблони є оптимізованими версіями редактора без самого редактора оптимізованого для кожної платформи. Ви також можете завантажити їх у Godot, натиснувши Редактор -> Керування шаблонами експорту:

../../_images/export_template_menu.png

Примітка

Якщо ви завантажили Godot зі Steam, то шаблони експорту вже включені в нього. Тому вам не потрібно завантажувати їх за допомогою діалогового вікна Керування шаблонами експорту.

У вікні, що з’явиться, ви можете натиснути Завантажити, щоб отримати версію шаблону, що відповідає вашій версії Godot.

../../_images/export_template_manager.png

Примітка

Шаблони експорту прив'язані до певної версії Godot. Якщо ви оновлюєте Godot, то ви повинні завантажити шаблони, які відповідають новій версії.

Взірці експортування

Далі ви можете налаштувати параметри експорту, натиснувши на Проєкт -> Експортувати.

Створіть новий взірець експорту, натиснувши Додати… та обравши платформу. За допомогою різних налаштувань можна зробити стільки завгодно взірців з різними налаштуваннями.

../../_images/export_presets_window.png

У нижній частині вікна є дві кнопки. Експорт PCK / ZIP створює лише упаковану версію даних вашого проєкту. Без виконуваного файлу, тому проєкт не бути запускатися самостійно.

Друга кнопка - Експорт проєкту створює повну виконавчу версію вашої гри, наприклад як .apk для Android, або .exe для Windows.

На вкладках Resources (Ресурси) та Features (Особливості) ви можете налаштувати експорт гри для кожної платформи. Наразі ці налаштування ми можемо залишити в спокої.

Експортування на платформами

У цьому розділі ми розглянемо процес для кожної платформи, включаючи будь-яке додаткове програмне забезпечення, або вимоги, які вам знадобляться.

ПК (Linux/macOS/Windows)

Експорт на платформи ПК працює однаково в трьох підтримуваних операційних системах. Відкрийте вікно експорту та натисніть Додати .., щоб створити взірець, який ви хочете використати. Потім натисніть Експорт проєкту та оберіть ім'я й теку. Виберіть розташування за межами папки вашого проєкту.

Натисніть Зберегти, і редактор створить файли експорту.

Примітка

При експорті для macOS, якщо ви експортуєте з macOS, ви отримаєте файл .dmg, а при використанні Linux, або Windows, буде .zip. У будь-якому випадку стиснутий файл містить macOS .app, який можна двічі клацнути та запустити.

Примітка

Якщо ви хочете, щоб експортований виконуваний файл мав інакший значок, а не стандартний, його потрібно змінити вручну. Дивіться: Зміна іконки програми для Windows.

Android

Порада

Мобільні пристрої оснащені найрізноманітнішими можливостями. У більшості випадків налаштування Godot за замовчуванням спрацюють, але мобільний розвиток іноді є більше мистецтвом, ніж наукою, і вам може знадобитися зробити кілька експериментів та пошукати допомоги, щоб все запрацювало.

Перш ніж експортувати проєкт для Android, потрібно завантажити таке програмне забезпечення:

Коли ви вперше запустите Android Studio, натисніть Налаштувати -> SDK Manager та встановіть Android SDK Platform Tools (Інструменти платформи Android SDK). Тут встановлюється інструмент командного рядка adb, який Godot використовує для спілкування з вашим пристроєм.

Далі створіть сховище ключів налагодження, запустивши таку команду в командному рядку вашої системи:

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

Клацніть на Редактор -> Параметри редактора в Godot і виберіть розділ Export/Android. Тут вам потрібно встановити шляхи до застосунків Android SDK у вашій системі та місце розташування створеного вами сховища ключів.

../../_images/export_editor_android_settings.png

Тепер ви готові експортувати. Клацніть на Проєкт -> Експортувати та додайте взірець для Android (дивіться вище). Виберіть новостворений взірець і в розділі Options (Опції) перейдіть до Screen (Екран) та встановіть Orientation (Орієнтація) на Portrait (портретна).

Натисніть кнопку Експорт проєкту і Godot створить APK, який ви можете завантажити на свій пристрій. Для цього в командному рядку використовуйте наступне:

adb install dodge.apk

Примітка

Можливо, ваш пристрій повинен перебувати в режимі розробника. Для отримання детальної інформації зверніться до документації пристрою.

Якщо ваша система підтримує це, підключення сумісного пристрою Android спричинить появу кнопки Розгортання одним натисканням кнопки в області кнопок відтворення 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 - файлу у вашому браузері дозволяє вам грати. Однак ви не можете відкрити файл безпосередньо, його потрібно обслуговувати вебсервером. Якщо у вас немає налаштувань на комп'ютері, ви можете пошукати їх в Інтернеті, щоб знайти пропозиції для вашої конкретної ОС.

Наберіть в браузері URL-адресу, де ви розмістили файл HTML. Можливо, вам доведеться почекати кілька хвилин, поки гра завантажиться, перш ніж ви побачите екран запуску.

../../_images/export_web_example.png

Вікно консолі під грою підкаже в чому проблема, якщо щось піде не так. Ви можете відключити його, в параметрі Export With Debug під час експорту проєкту.

../../_images/export_web_export_with_debug_disabled.png

Примітка

Хоча WebAssembly підтримується у всіх основних браузерах, це все ще нова технологія, і ви можете знайти деякі речі, які не працюють. Переконайтеся, що ви оновили вебпереглядач до останньої версії та поінформуйте про будь-які помилки, які ви знайдете у Godot Github repository.