Let‘s Move Sui环形掌上战争 0基础开发入门到精通(5)

Let’s Move Sui环形掌上战争 0基础开发入门到精通(5)

游戏模块的重复使用

在游戏开发过程中,我们经常需要重复使用一些模块,比如:一些初始化常量、工具函数等等。
在sui move中体现就是 一个package里的modlue中某一个函数需要调用其他package里的module中的函数。

比如一个常数 π ,我们经常要用到 。 值为 3.1415926535897932384626433832

通常的做法是 定义一个常量 比如

    //错误定义
    const PI:u64 = 3.1415926; 

    //由于move里没有浮点数,所以只能用整除定义
    const PI:u64 = 31415926;

这样定义,在move里,我们只能用整除运算来计算 π ,这样精度会损失。但游戏足够使用了。

我们还可以定义一个工具函数,比如:

    public fun tpai():u64{
        PI
    }

这样,我们就可以使用 tpai() 来计算 π 了。以上只是示范,精度或细节小伙伴们自行调整。

这时候发布一下这个项目,形成线上的一个基础package,方便以后其他项目使用。

sui client publish --skip-fetch-latest-git-deps --skip-dependency-verification --gas-budget 100000000

记录并保留好 package id

0x3c46d0fd596a4868caf620fc2aa4847b7287908ffd5bdbc2e78d8d63f0a2e857

准备好线上git路径
https://github.com/summertoo/tbase.git

然后将base工程push到tmove目录下

然后配置一个新的package工程,我这边拿上期使用的hellow举例
此处仅仅使用tbase()函数作为示范

module hellow::hellow{
    use std::debug::{Self,print};
    use std::string::{Self,utf8,String};
    use tmove::tbase::{tbase};

    entry public fun main(){
        print(&utf8(b"start game ... "));
        tbase();// start tbase ...
    }

    #[test]
    fun nowtest(){
        main();
    }
}

此处的

use tmove::tbase::{tbase};

是将之前的tbase包导入进来,使用里面的tbase函数。

记得在 toml文件里写上address

[addresses]
hellow = "0x0"
tmove = "0x3c46d0fd596a4868caf620fc2aa4847b7287908ffd5bdbc2e78d8d63f0a2e857"

这样就可以顺利调用base package的方法了。
记得共享出来的方法要写 public 修饰

最后,测试一下

sui move test --skip-fetch-latest-git-deps

Running Move unit tests
[debug] "start game ... "
[debug] "start tbase   ... "
[ PASS    ] 0x0::hellow::nowtest
[debug] "star test hdcoind"
[ PASS    ] 0x0::hbcoin::test_mint
Test result: OK. Total tests: 2; passed: 2; failed: 0

顺利通过

(未完待续)

telegram: https://t.me/move_cn

QQ群: 79489587

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值