正在导出

概述

既然你有了一个有效的游戏,你可能想和别人分享你的成功。但是,让你的朋友下载Godot,这样他们就可以打开你的项目,这是不现实的。相反,你可以 导出 您的项目,将其转换为任何人都可以运行的“包”。

导出游戏的方式取决于您的目标平台。在本教程中,您将学习如何为各种平台导出“闪避爬行”游戏。然而,首先,我们需要对游戏的工作方式做一些改变。

注解

如果你还没有自己做过“闪避恐惧”,请阅读 你的第一场比赛 在继续本教程之前。

准备项目

在“闪避恐惧”中,我们使用键盘控制来移动玩家的角色。如果您的游戏是在PC平台上玩的,这是很好的,但是在手机或平板电脑上,您需要支持触摸屏输入。因为点击事件可以被视为触摸事件,我们将把游戏转换为点击和移动输入样式。

默认情况下,Godot从触摸输入模拟鼠标输入。这意味着,如果对鼠标事件进行编码,触摸也会触发事件。如果您出于任何原因想禁用它,或者从鼠标输入中模拟触摸,您可以在下面的“项目设置”中执行此操作。 输入设备磨尖

../../_images/export_touchsettings.png

在更改输入方法之前,请在项目设置中转到 显示 ,然后单击 窗口 . 在 伸展 选项,设置 Mode 至“2d”和 方面 “保留”。这可以确保游戏在不同大小的屏幕上持续缩放。

../../_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://godotenengine.org/download下载。这些模板是引擎的优化版本,没有为每个平台预先编译的编辑器。你也可以点击Godot下载 Editor -> Manage Export Templates

../../_images/export_template_menu.png

在出现的窗口中,您可以单击“下载”以获取与您的Godot版本匹配的模板版本。

../../_images/export_template_manager.png

注解

如果升级Godot,则必须下载与新版本匹配的模板,否则导出的项目可能无法正常工作。

导出预设

接下来,您可以通过单击配置导出设置 Project -> Export

../../_images/export_presets_window.png

通过单击“添加…”并选择平台来创建新的导出预设。您可以使用不同的设置进行任意多个预设。

窗口底部有两个按钮。”export pck/zip“仅创建项目数据的压缩版本。这不包括可执行文件,因此项目不能单独运行。

第二个按钮“导出项目”创建游戏的完整可执行版本,例如 .apk 对于Android或 .exe 对于Windows。

在“资源”和“功能”选项卡中,您可以自定义如何为每个平台导出游戏。我们可以暂时不使用这些设置。

按平台导出

在本节中,我们将介绍每个平台的流程,包括您需要的任何附加软件或需求。

PC(Linux/MacOS/Windows)

在三个受支持的操作系统中,导出PC平台的工作原理相同。打开导出窗口并单击“添加…”以创建要制作的预设。然后单击“导出项目”,选择一个名称和目标文件夹。选择一个位置 外部 项目文件夹的。

单击“保存”,引擎将生成导出文件。

注解

当为MacOS导出时,如果在MacOS计算机上导出,将以 .dmg 文件,在使用Linux或Windows时生成 .zip . 无论哪种情况,压缩文件都包含MacOS .app 你可以双击并运行。

注解

在Windows上,如果希望导出的可执行文件具有与默认文件不同的图标,则需要手动更改该图标。见: 更改Windows的应用程序图标 .

安卓

小技巧

移动设备具有多种功能。在大多数情况下,Godot的默认设置是可行的,但移动开发有时比科学更艺术,你可能需要做一些实验和寻找帮助,以使一切正常工作。

在导出Android项目之前,必须下载以下软件:

  • Android SDK:https://developer.android.com/studio/

  • JavaJDK:HTTP://www. Oracle .COM/TeaTeWorks/Java/JavaSe/Dealths/Dex.HTML

首次运行Android Studio时,请单击 Configure -> SDK Manager 安装“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

点击 Editor -> Editor Settings 在Godot中选择 Export/Android 第节。在这里,您需要设置系统上Android SDK应用程序的路径以及刚刚创建的密钥库的位置。

../../_images/export_editor_android_settings.png

现在可以导出了。点击 Project -> Export 并为Android添加预设(见上文)。

单击“导出项目”按钮,Godot将构建一个您可以在设备上下载的APK。要在命令行上执行此操作,请使用以下命令:

adb install dodge.apk

注解

您的设备可能需要在 开发人员模式 . 有关详细信息,请参阅设备文档。

如果您的系统支持,连接兼容的Android设备将导致“一键部署”按钮出现在Godot的PlayTest按钮区域:

../../_images/export_android_oneclick.png

单击此按钮可构建APK并将其一步复制到您的设备上。

网间网操作系统

注解

为了建立你的iOS游戏,你必须有一台运行MacOS的电脑安装了Xcode。

在导出之前,有一些设置 must 项目导出成功完成。首先是“应用商店团队ID”,您可以通过登录到您的Apple开发人员帐户并在“成员资格”部分找到它。

您还必须提供图标和启动屏幕图像,如下所示:

../../_images/export_ios_settings.png

单击“导出项目”并选择目标文件夹。

成功导出项目后,您将发现在所选位置创建了以下文件夹和文件:

../../_images/export_xcode_project_folders.png

现在您可以在Xcode中打开该项目并为iOS构建该项目。Xcode构建过程超出了本教程的范围。有关详细信息,请参阅https://help.apple.com/xcode/mac/current//devc8c2a6be1。

HTML5(网络)

单击HTML5预设中的“导出项目”。我们不需要更改任何默认设置。

导出完成后,您将拥有一个包含以下文件的文件夹:

../../_images/export_web_files.png

查看 .html 浏览器中的文件允许您玩游戏。但是,您不能直接打开该文件,它需要由Web服务器提供服务。如果你的电脑上没有设置,你可以使用谷歌为你的特定操作系统找到建议。

将浏览器指向放置HTML文件的URL。您可能需要等待几分钟,而游戏加载,然后才能看到开始屏幕。

../../_images/export_web_example.png

游戏下方的控制台窗口告诉您是否有任何问题。在导出项目时,可以通过将“使用调试导出”设置为关闭来禁用它。

注解

对WASM的浏览器支持并不十分广泛。火狐和Chrome都支持它,但是你可能仍然会发现一些不起作用的东西。确保已将浏览器更新为最新版本,并报告在 Godot Github repository .