WAX是一款兼容eos的区块链,交易速度快,免手续费,完善的智能合约支持,特别适合区块链NFT游戏的开发。在本教程中,我们将学习如何使用Phaser开发一个基于WAX区块链的小NFT游戏。如果你是一个PHP开发人员,你可以使用这个PHP开发工具包来访问蜡区块链。
WAX/EOS区块链游戏开发快速入门:EOS DApp开发入门|玩EOS钱包开发| EOS PHP开发工具包Phaser入门
蜡区块链与eos兼容。虽然它被列为WAXP,但它的密码是WAX。蜡像区块链的一些最显著的特征是:
低排放生态区块链。智能合约编程:可以用C语言开发智能合约。可交易许可证的建立和管理(NFT和英国《金融时报》)。完整的JavaScript支持。WAX Pass在主流交易所上架(火币,Bittrex,Kucoin等。).自由贸易。交易速度快。这些功能使WAX区块链成为基于资产收集或视频游戏开发项目的理想生态系统。如果你不熟悉EOS/WAX区块链,你可以利用这个EOS应用程序开发教程快速入门。
1、关于Phaser
Phaser是一个用于HTML5游戏开发的免费开源框架。这篇Phaser教程提供了一个在线练习环境,可以帮助你快速入门Phser游戏开发。
Phaser的一些特性如下:
支持JavaScript和TypeScript语言。庞大的函数库。大量的文献和实例。庞大的用户群体。你可以使用套接字来开发客户端游戏和客户端/服务器游戏。00-1010通用认证器库(UAL)为来自任何为UAL开发和扩展的WAX钱包的账户认证和交易签名提供通用接口。你可以访问这里查看UAL源代码。
EOS/WAX一些可以使用的钱包:
AnchorWAX云钱包。分散钱包利用UAL图书馆,用户将能够从他们最喜欢的钱包登录到JavaScrip应用程序,并在WAX区块链上签署交易。
00-1010在本文中,我将尝试解释UAL如何在Phaser中与游戏代码连接。你可以通过这个链接下载phaseual模板。
UAL有一个HTML按钮,负责根据加载的库加载带有可能选项的登录窗口。此按钮必须被覆盖。相反,我们将使用我们设置的外观从Phaser画布创建一个交互式按钮。
当调用UAL登录或签署交易时,它会在我们游戏的HTML模板中准备的DIV块的主体中创建一个窗口。
一个
2
三
四
五
六
七
八
九
10
11
12
13
14
头
meta charset=\'utf-8\' /
风格。ual-button-gen {
显示:无;
}
/风格
/头
身体
p id=\'ual-p\'/p
/body
/html
在Phaser中游戏登录场景的create方法中,我们将创建UAL对象,并将其与DIV元素和一个回调函数相关联,该函数将在登录过程完成时运行。
我们添加的登录按钮将通过模拟隐藏的UAL对象的按钮上的点击事件来做出反应。这将从UAL对象的回调函数中执行。
回调函数将加载游戏中的下一个场景,并将用户对象作为参数发送给所有其他与钱包的交互。
00-1010我们可以在区块链上执行读或写操作。对于区块链数据读取操作,不需要UAL或登录用户会话。eosjs库允许我们创建与公共API服务的连接,这允许我们读取存储智能合同的表,就像它是一个数据库一样。
示例代码显示了如何使用用户的帐户名来读取用户信息:
一个
2
三
四
五
六
异步函数readFunds(用户)
常量帐户?await rpc.get_account(用户);
if (account.account_name未定义)
抛出错误(\'读取错误!\');
return account . core _ liquid _ balance;
}
应当注意,区块链上的读/写操作是异步的。
实际上,在区块链上执行写操作是不可能的。相反,我们要做的是调用智能合约的操作,它将写入或修改它们的表中的信息。
智能合约的所有行动号召操作都需要用户通过钱包进行签名。
在这个例子中,我们支付了1张蜡票来开始游戏。这意味着一个通行证合约的交易,即用户的通行证余额将减少1个单位,而收到的通行证的账户余额将增加1个单位。作为数据修改操作,我们必须调用执行该操作的智能合约的操作,并且我们必须对该操作进行签名,以确保我们是要转移的通行证的合法所有者。
WAX Pass管理的智能合约的名字是eosio.token,调用的动作会是transfer。对于这个操作,我们需要传递源帐户的名称、目标帐户、我们要发送的次数以及可选文本(例如主题或备忘录)作为参数。
此操作需要使用要发送的通行证的所有者的活动密钥进行签名。
为了调用操作并使用登录过程中选择的钱包进行签名,UAL为我们提供了signTransaction方法:
一个
2
三
四
五
六
七
八
九
10
11
12
13
14
15
16
17
18
19
20
21
22
wait scenea . logged inuser . sign transaction(
{
动作: [。
帐户: \'eosio.token \',
名称: \'转让\':
授权:
actor: SceneA.nameUser用户,
权限:“活动”;
}],
数据:
来自: SceneA.nameUser,
到: \'3dkrenderwax \',
数量: \'1.0000000蜡\':
memo:“这行得通!”;
}
}]
},
{
blocksBehind: 3,
expireSeconds: 30
}
);
如果交易成功完成,我们可以继续游戏逻辑。
因为读表操作和智能合约操作调用,可以知道玩家的pass余额,促进玩家和游戏账号的交易。
如果要从游戏到玩家进行交易,必须从服务器端进行,以免暴露游戏账号的私钥。
00-1010开始在区块链上开发游戏之前,建议在test区块链(Testnet)上练习一下。为了让我们的应用程序与一个或另一个区块链通信,我们必须指出API服务器的URL,我们将通过它与区块链通信。有几个公共服务器可用。您可以首先使用sdkrender的测试服务器进行测试:
测试网:https://testnet-wax.3dkrender.com主网:https://apiwax.3dkrender.com可以使用公会Waxsweeden提供的测试链服务,在测试网区块链上创建一个测试账号。
原文链接:http://blog.hubwiz.com/2022/04/03/wax-phaser-tutorial/