用户:
一个STUB用户_6923702查看:3 回复:6 评论:3 创建时间:2021-02-03T13:50:47
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
众所周知
Scratch中只有两个可用云变量(防传播负面信息)
就只能通过保存码来加载存档
就算codemao可以创建很多云变量和云列表
但是存入的数据过长也不好弄
那么
我们就可以使用
[保存码]
Save Code
哇,那这玩意到底是个什么玩意呢?
我们看一个例子:
作品名:Undertale-Rejuvenation
作者:SOOTFOOT
(链接在官网上找不到了……)


Game Over后,你可以选择SAVE,便会显示保存码

第二次来的时候,输入保存码,就会加载你的内容
当然这样的例子还有很多
比如octupuss的ScratchingDawn(https://scratch.mit.edu/projects/339568183/)
我们都知道
UT的保存码
需要储存很多数据
我们把上面那个Ut-rjvntn试着分解一下需要保存的数据
(不代表作品本身方式)
-解锁章节数
-目前回合数
-Chara血量
-物品栏1是否空
-物品栏2是否空
-物品栏3是否空
-物品栏4是否空
-物品栏5是否空
-物品栏6是否空
-物品栏7是否空
-物品栏8是否空
-玩家目前方向(仁慈、喵)
如果要用0&1存储的话
那么就需要特别多位数!
那么我们该如何缩短长度呢?
这个时候肯定就有帅气英俊喵倜傥脑瓜灵光
的观众说了
肯定是——
[进制转换]
number base conversion
啊!
我们可以把保存码看作一个二进制数!
这样把它转换成十进制,就可以缩短长度呢!!!!
那么我们来试试通过9位二进制数生成十进制的保存码吧。
示例:100111001
首先搞一个转换积木

接下来该怎么办呢?
当然是
233![]()
真正的方法是:
[权相加法]
wolandefanyile
没错
!
我来给各位介绍下
比如将二进制的101转换为十进制
就是
1x2^2+0x2^1+1x2^0
其中颜色与上面的101相同的数字是从上面移下来的,而标棕色的则是几进制
(a^b=a的b次方)
那剩下的黑色数字是啥?
1x2后面的2,是它的排号
有点像反过来的Python列表
先从0开始每次+1加二进制数长度次
[0,0+1,0+1+1]
=[0,1,2]
再将它反过来
[2,1,0]
依次安放在每一组后边
1x2^2+0x2^1+1x2^0
这就是我们的方法
经过一些思考与演算

我们得出了这个积木

将变量[结果]增加后面一大条就是a×2^b
经过测试这玩意儿可行!
那么这教程帖就到此结束
了吗?
我还没有说怎么加载保存码呢!
该如何把2进制转回十进制?
且听下回分解!