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

  • Summer.XJ
  • 更新于 2024-03-28 21:35
  • 阅读 185

Let'sMoveSui环形掌上战争0基础开发入门到精通(5)游戏模块的重复使用在游戏开发过程中,我们经常需要重复使用一些模块,比如:一些初始化常量、工具函数等等。在suimove中体现就是一个package里的modlue中某一个函数需要调用其他package里的module中的

<!--StartFragment-->

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

<!--EndFragment-->

点赞 1
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Summer.XJ
Summer.XJ
0x0d54...9e80
学好MOVE 光宗耀祖