Winter Starfall 中的源代码与场景
本教程包含下载并运行 Winter Starfall 源代码的说明,以及演示登录与购买场景最佳实践的代码示例讲解。源代码下载
先决条件
- 安装 Node JS
- 安装 Visual Studio Code
本地开发环境搭建
- 从 GitHub 下载源代码。
- 在 VS Code 中打开
/website文件夹,并选择安装它推荐的所有扩展。 - 在
/website目录中,运行 npm install 以安装所有依赖项。 - 使用
npm run dev启动网站。选择它提供的链接以查看网站。
Azure 凭据
要更新 AZURE_CREDENTIALS 密钥,请在 Azure 门户的 shell 中运行以下命令:az ad sp create-for-rbac --name "VanguardOutrider2" --role contributor --scopes /subscriptions/YOUR_SUBSCRIPTION_ID/resourceGroups/YOUR_RESOURCE_GROUP_NAME --json-auth
登录流程
Winter Starfall 中的玩家认证流程分为两步:登录调用,以及用于从服务获取玩家信息并将玩家加载到剧情正确位置的登录后函数。玩家认证
在登录部分,文件 use-login.tsx 定义了一个 TypeScript 包装函数,用于处理玩家可用的多种认证方式。 第 144 - 169 行定义了使用邮件地址登录的回调函数,登录成功后会调用登录后函数。登录后:获取玩家数据
在获取到安全令牌之后,会用它来运行登录后函数以获取已保存的游戏状态。 第 340 - 378 行定义了 postLoginFunctions,它会调用各种 Economy 和 PlayFab Services API,根据玩家加载正确的剧情位置、库存物品、货币等信息。- 首先,
ClientGetTitleData会获取所有 API 调用所需的密钥 - 然后,
EconomySearchItems在目录中搜索货币和物品类型 - 其结果作为
EconomyGetInventoryItems的输入,用来返回玩家的库存物品 - 接着,
ClientGetUserData检索存储在玩家数据中的剧情位置值。
购买流程
在游戏的某些节点,玩家可以选择从商店购买和出售库存物品。购买流程在另一个包装函数中实现。在 use-store.tx 文件的第 40 - 69 行,会调出玩家在特定位置遇到的正确商店,并通过搜索目录来填充可出售的商品。EconomyGetItem 定义在 use-playfab.tsx 的第 423 - 446 行,其中使用 PlayFab Economy API GetItems 在目录中搜索并返回物品。
PurchaseInventoryItems API。它定义在 use-playfab.tsx 的第 540 - 565 行。
出售物品
出售流程是使用由 Azure Functions 驱动的 CloudScript 来扩展 Economy 系统功能的一个示例。 SellItem.cs 定义了在出售物品时执行的 CloudScript 函数。 第 49 - 61 行使用 PlayFab 的GetTitleData API 返回商店乘数并计算出售价格。
要在本地运行 Winter Starfall,你需要一个 Azure 账号以支持 CloudScript 函数。你可以注册一个免费的 Azure 账号,然后按照上文的说明正确重置 Azure 凭据。
参见
- 登录流程
- 购买流程
- Economy V2 文档
- 进一步了解 Economy V2 的另一个好的下一步是尝试合成游戏教程,该教程侧重于使用商店和库存功能构建一个示例游戏。
