level 3
我定了三个参数分别是x_x=3660,y_y=360,level=1,重启游戏之后值变成了x_x=76,y_y=104,levle=1
2017年04月25日 17点04分
1
level 3
if(file_exists("single dog.sav")){
var file;
file=file_bin_open("single dog.sav",0);
global.x_x=file_bin_read_byte(file);
global.y_y=file_bin_read_byte(file);
global.level=file_bin_read_byte(file);
file_bin_close(file);
}
这是读取数据的代码
2017年04月25日 17点04分
2
level 3
global.x_x=3660;
global.y_y=360;
global.level=1;
var file;
file=file_bin_open("single dog.sav",1);
file_bin_write_byte(file,global.x_x);
file_bin_write_byte(file,global.y_y);
file_bin_write_byte(file,global.level);
file_bin_close(file);
这是写入数据的代码,为什么x_x和y_y的值变了?
2017年04月25日 17点04分
3
level 9
你不知道一个byte最多只到255么……?超出1byte的部分就会被截掉,你可以用进制计算器算一算,超出1byte的部分要移位,先熟悉一下2进制吧~
2017年04月26日 02点04分
4
level 15
楼上正解。如果直接想存二进制文件用buffer好些。
2017年04月26日 02点04分
5
level 3
那我用file_text_xxxx是不是一样的效果?
2017年04月26日 05点04分
6
用text可以读取大的实数,不过txt更容易被人打开并篡改
2017年04月26日 05点04分
@微子喵 对哦,我用text和ini正常了,但是能够直接修改,无奈
2017年04月26日 08点04分
@挚爱蘿莉控 bin用位操作啊,比如先将global.x_x低字节写入,再用 global.x_x >> 8,将高字节写入,读取的时候反过来累加起来就行了
2017年04月26日 10点04分
吧务
level 12
当用bin函数存储的变量a大于255并小于32768时,可以将a数据分成两部分:1、floor(a/256);2、a mod 256。然后将这两部分数值分别存储。还原时公式a = a1*256+a2
2017年05月08日 14点05分
10
level 11
建议去了解一下 二进制, 八进制, 十六进制那些…
以及数据的存储,占用字节数什么的…会有很大的帮助。
2019年08月31日 02点08分
12