既然您有一款可以正常工作的游戏,那么您可能想与他人分享您的成功。但是,要求您的朋友下载Godot以便他们可以打开您的项目是不切实际的。相反,您可以导出项目,将其转换为任何人都可以运行的“包”。

导出游戏的方式取决于您所针对的平台。在本教程中,您将学习如何为各种平台导出Dodge the Creeps游戏。但是,首先,我们需要对游戏的工作方式进行一些更改。

准备项目

在“躲避爬行”中,我们使用了键盘控件来移动玩家的角色。如果您的游戏是在PC平台上玩的,那很好,但是在手机或平板电脑上,您需要支持触摸屏输入。由于点击事件可以与触摸事件一样对待,因此我们将把游戏转换为点击移动输入风格。

默认情况下,Godot模拟触摸输入中的鼠标输入。这意味着如果在鼠标事件中发生了任何代码编码,触摸也会触发它。Godot还可以模拟鼠标单击的触摸输入,切换到触摸输入后,我们将需要能够继续在计算机上玩游戏。

在“项目”>“项目设置”中的“输入设备”>“指向”下,启用“ 从鼠标模拟触摸”

我们还想确保游戏在不同尺寸的屏幕上一致缩放,因此在项目设置中转到显示,然后单击窗口。在“拉伸” 选项中,将“模式”设置为2d,将“宽高比”设置为keep

接下来,我们需要修改Player.gd脚本以更改输入方式。我们将删除按键输入,并使播放器移向由touch(或click)事件设置的“目标”。

这是播放器的完整脚本,带有注释说明了我们所做的更改:

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)

设定主要场景

主场景是您的游戏将开始的场景。对于此 Dodge the Creeps示例,在“ 项目”->“项目设置”->“应用程序”->“运行”中,通过单击文件夹图标并将其选中,将“主场景设置 为Main.tscn

导出模板

要导出项目,您需要从 http://godotengine.org/download下载导出模板。这些模板是引擎的优化版本,无需为每个平台预先编译编辑器。您也可以通过单击编辑器->管理导出模板,在Godot中下载它们:

如果您已经从Steam下载了Godot ,则已经包含了导出模板。因此,您不需要使用“管理导出模板”对话框下载它们。

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

导出模板绑定到特定的Godot版本。如果升级Godot,则必须下载与新版本匹配的模板。

导出预设

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

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

窗口底部是两个按钮。导出PCK / ZIP仅创建项目数据的打包版本。它不包含可执行文件,因此该项目不能单独运行。

第二个按钮Export Project,创建游戏的完整可执行版本,例如.apk适用于Android或.exeWindows的。

在“资源功能”选项卡中,您可以自定义如何导出每个平台的游戏。现在,我们可以不理会这些设置。

通过平台导出

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

PC(Linux / macOS / Windows)

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

单击保存,引擎将构建导出文件。

安卓

必须先下载以下软件,然后才能将项目导出为Android:

首次运行Android Studio时,请点击配置-> SDK管理器 并安装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中的“编辑器”->“编辑器设置”,然后选择“导出/ Android” 部分。在这里,您需要设置系统上Android SDK应用程序的路径以及刚刚创建的密钥库的位置。

现在您可以开始导出了。单击项目->导出,然后添加Android的预设(请参见上文)。选择新添加的Android预设。在“选项”下,转到“屏幕”,然后将“方向”设置为“竖向。如果您的游戏处于横向模式(即,以像素为单位的窗口宽度大于窗口高度),则将其保留在“横向”上

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

adb install dodge.apk

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

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

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