第 5 部分 - 划分收入
使用游戏网络货币化插件,就可以在多个支付指示器之间划分游戏收入。网络货币化 API 不能直接做到这一点,所以它使用称为概率收益分配的流程。您可以阅读更多关于网络货币化网站概念的信息。
正如您在之前教程中所见,您需要给配置对象传输一个插件,其中包含一个 paymentPointer
。下面是收款钱包的地址:
const gameWebMonetization = new GameWebMonetization({
paymentPointer: '$ilp.uphold.com/zdXzL8aWJ4ii'
});
但是,您也可以提供一批配置对象,并为每个配置对象分配一个 weight
值,例如:
const gameWebMonetization = new GameWebMonetization([
{
paymentPointer: '$ilp.uphold.com/zdXzL8aWJ4ii',
weight: 60
},
{
paymentPointer: '$ilp.uphold.com/ziW6E7iwKUkp',
weight: 40
}
]);
weight
属性控制该插件选择支付提供商的百分比概率。因此,总的 weight
值之和不能超过 100。
这取决于你如何分配权重。例如,您可能希望在游戏的所有团队成员之间平均分配权重。或者,您可能向开发者分配 70% 权重,向美工分配 30% 权重?完全取决于您。weight
值直接控制网络货币化 API 启动时钱包获选的机会。
以下是完整 main.js
测试,供您在操作时查阅:
import { GameWebMonetization } from './GameWebMonetization.js';
const gameWebMonetization = new GameWebMonetization([
{
paymentPointer: '$ilp.uphold.com/zdXzL8aWJ4ii',
weight: 60
},
{
paymentPointer: '$ilp.uphold.com/ziW6E7iwKUkp',
weight: 40
}
]);
gameWebMonetization.on(GameWebMonetization.START, (event) => {
console.log('[inside event start] - The state: ', event);
});
gameWebMonetization.start();
如果您多次运行此项测试,会看到支付指示器在控制台中发生变更:
如果很难知道谁拥有每个支付指示器,我们可以有选择地在配置中传递 pointerName
属性,如下所示:
const gameWebMonetization = new GameWebMonetization([
{
paymentPointer: '$ilp.uphold.com/zdXzL8aWJ4ii',
weight: 60,
pointerName: "Bob"
},
{
paymentPointer: '$ilp.uphold.com/ziW6E7iwKUkp',
weight: 40,
pointerName: "Alice"
}
]);
若要获取名称,我们只需访问插件提供的 pointerName
属性:
console.log('Paying into the wallet of', gameWebMonetization.pointerName);
如果我们转到浏览器并刷新,可以看到显示的名称:
如果您多次更新,会看到名称随权重值改变:
即使您是唯一参与制作游戏的人,也可以使用本系统向您的电子钱包支付不同货币。请谨记,一旦选定支付提供商,其就将保持整个游戏回合处于活跃状态。