为游戏添加货币和虚拟商店 | hyperPad Documentation
Logo
Documentation教程为游戏添加货币和虚拟商店

如果玩家已经通关,或开始对你的游戏感到厌倦,打造一个可以解锁物品或角色的商店,是提升游戏重玩价值和玩家留存率的好方法。在本教程中,我们将介绍如何制作一个应用内商店,让用户使用在游戏中赚取的点数来“购买”物品!

在这个示例中,我们的游戏会非常简单:只要不停点击,就能获得更多点数!如果想要每次点击获得更多点数,就升级你的“玩家”。 你可以随心打造简单或复杂的游戏。 首先,我们要设置一个能在所有场景中共用的货币系统。

为游戏添加货币和虚拟商店

显示货币

首先,我们要进入 Global UI,添加一个用于显示货币的 Label,并将文本设置为 0。然后再添加另一个 Label,用来说明这个数值代表什么。这样玩家就能看到自己有多少钱。你可以按照自己的喜好美化这些标签!

为游戏添加货币和虚拟商店

保存货币

我们需要确保当前的金额能在不同游戏会话之间保存。这意味着金额会在游戏过程中保存,并且玩家再次进入游戏时也会加载该金额。选中用于显示货币金额的 Label,然后编辑它的行为即可实现这一点。

为游戏添加货币和虚拟商店

先来设置将货币金额保存到文件。我们希望能在场景中的任何位置触发保存,因此添加一个 Receive Message 行为。在这个示例中,让它监听 saveMoney 事件。

为游戏添加货币和虚拟商店

场景中的任何 Broadcast Message 行为,只要广播 saveMoney 事件,就能触发这个行为。这意味着我们可以在任何需要的时候、任何位置触发保存。

接下来,我们要获取要保存的货币金额,因此添加 Get Label,并将 Receive Message 连接到它。确保获取的是货币金额 Label 的值。

为游戏添加货币和虚拟商店

现在已经获取了要保存的货币金额,接下来添加一个 Modify Save File 行为,并将 Get Label 连接到它。在该行为中,确保修改方式设为 Set Key,键类型设为 Existing。

为游戏添加货币和虚拟商店

轻点 Select or Create Key 创建一个键,并在文本框中输入 Money。轻点 + 按钮创建该键。现在,这个行为应该指向 Money 键。这个键会关联到保存文件中存储的货币金额;之后要读取金额时,只要再次使用同一个键即可。你可以随意命名这个键,但要确保读取已保存数据时使用相同的键。 你的行为应该和下图类似。

为游戏添加货币和虚拟商店

接下来,我们要从 Get Label 行为获取 text 输出,并将它接入 Modify Save File 行为。

为游戏添加货币和虚拟商店

恭喜,保存功能已完成! 上面的行为会获取 Label(也就是货币金额),并在每次 Broadcast Message 行为广播 saveMoney 事件时将它保存到文件。

稍后我们会介绍如何触发保存。现在先来设置从文件加载货币金额。添加一个 Frame Event 行为,并将其设为在 Scene Start 时触发。这样就能在场景运行前触发加载。确保启用 Trigger on Restart,这样场景重新启动时也会触发加载。

为游戏添加货币和虚拟商店

添加一个 Load from File 行为,然后将 Frame Event 行为连接到它。从这里可以选择之前创建的 Money 键。

为游戏添加货币和虚拟商店

Default Value 是玩家初始拥有的货币金额。在这个示例中,我们输入 1000。如果该键没有关联任何先前保存的值,加载时就会使用默认值。

为游戏添加货币和虚拟商店

到这里,我们已经成功加载了数值,但还没有对它进行任何操作。此处我们要更新货币金额 Label,显示加载的数值。添加一个 Set Label 行为即可!

为游戏添加货币和虚拟商店

像这样,将 Load from File 加载的值接入 Set Label。

为游戏添加货币和虚拟商店

恭喜,现在你已经可以保存和加载货币了! 你的行为大致应该如下图所示:左侧是保存功能,右侧是加载功能。

为游戏添加货币和虚拟商店

赚取货币

我们还没有添加赚取货币的方法。你可以让玩家通过各种方式赚取货币,但在这个示例中,我们会保持简单:让玩家通过点击曲奇来赚钱。是不是有点熟悉?

场景中有一个曲奇图片,我们希望玩家点击它时能获得 1 点。现在来编辑它的行为。

为游戏添加货币和虚拟商店

现在设置成玩家触碰曲奇时,货币金额增加 1。确保选中了正确的 Label!

为游戏添加货币和虚拟商店

这样虽然能正常运作,但还不会保存。增加或减少货币后,我们应该像这样使用 Broadcast Message 行为来保存更改——每次要触发保存时,都应该使用这个行为。 我们会重用之前在设置保存功能时,配合 Receive Message 行为使用的 saveMoney 事件键。

为游戏添加货币和虚拟商店

太棒了,现在你已经有了一个可以持续保存的货币系统! 现在你可以随意点击曲奇,游戏进度都会保存。离开游戏后再回来,货币金额应该会保持之前的数值。

设置商店

现在你已经有了完善的货币系统,接下来就为玩家添加一个消费货币并获得回报的方式吧!创建一个名为 Shop 的新图层。你可以在这个图层中按照自己的想法设计商店。你可以随心设计它的样式。

为了节省时间,也让示例更简单,商店里只放两件物品,但你可以随意添加更多物品。这里的物品是:

  • 点击倍率 — 点击曲奇时获得的点数。花费 100 货币可将倍率提高 1。
  • 被动收入 — 每秒获得的点数。花费 200 货币可将收入提高 20。

为游戏添加货币和虚拟商店

确保玩家能够进入和退出商店。在这个示例中,我们只需隐藏或显示 Shop 图层。除此之外不需要设置其他行为。

和货币金额 Label 一样,我们也要让 点击倍率 和 被动收入 以相同方式加载和保存。照搬之前使用的行为即可。

现在来设置 点击倍率 物品。找到它下方的 BUY Label,然后编辑它的行为。

为游戏添加货币和虚拟商店

设置成玩家触碰 BUY Label 时,先获取玩家持有的货币金额。我们可以使用 Get Label,并选择显示货币金额的 Label。

你可以使用 If 行为检查玩家是否没有足够的钱购买物品。如果钱不够,可以提醒玩家。在这个示例中,如果玩家的点数少于 100,Alert 行为就会通知玩家。

为游戏添加货币和虚拟商店

另一方面,如果玩家有足够的货币购买物品,我们只需将 点击倍率 增加 1。

为游戏添加货币和虚拟商店

别忘了还要按物品价格扣除货币,并保存更改! 你肯定不希望玩家免费获得这个物品,对吧?

为游戏添加货币和虚拟商店

对 被动收入 做同样的设置。唯一需要更改的是价格、要增加数值的 Label,以及要保存的内容。

为游戏添加货币和虚拟商店

做得好,现在你已经有一个能正常运作的商店了! 不过,这些物品目前在游戏中还没有任何效果,只是一些数字——接下来我们就来实现它们的作用。

让商店物品发挥作用

我们已经确定商店物品应该有什么作用:

  • 点击倍率 — 点击曲奇时获得的点数。花费 100 货币可将倍率提高 1。
  • 被动收入 — 每秒获得的点数。花费 200 货币可将收入提高 20。

现在让这些物品真正发挥作用——先从 点击倍率 开始。在曲奇的行为中,我们可以像这样从文件加载倍率值。

为游戏添加货币和虚拟商店

然后,我们可以将加载的值用作增加货币的数量。

为游戏添加货币和虚拟商店

每次点击曲奇时,系统都会从文件中读取倍率,再将它加到货币金额上。完成后,我们就可以开始设置 被动收入 了。添加一个 Label 并为它命名——与被动收入相关的行为就放在这里。玩家不需要看到这个 Label,所以把它隐藏在屏幕外。

为游戏添加货币和虚拟商店

在行为中,我们可以设置一个每 1 秒触发一次的 Timer,反复获取 被动收入 的数值。

为游戏添加货币和虚拟商店

现在,我们要让货币按被动收入的数值增加,并像这样在每次增加后保存。

为游戏添加货币和虚拟商店

接下来该怎么做?

做得好!现在你已经有了一个能正常运作的商店和货币系统! 虽然它看起来不算特别漂亮,但你可以按自己的喜好美化并扩展它。

为游戏添加货币和虚拟商店

玩家现在可以用钱在商店购买实用物品。你可以随意添加更多商店物品、更多赚取货币的方式,或者进一步润色系统!目前购买物品时,价格不会变化。这样玩家赚到更多钱后,就能很轻松地继续购买。你能不能让物品价格随着购买次数增加?

你也可以添加不同的商店,并在其他场景中使用这个货币系统!

如果你想下载这个项目,点击此处下载!