Project1
标题:
问XP有游戏的几个问题
[打印本页]
作者:
kvkv97
时间:
2013-12-20 16:42
标题:
问XP有游戏的几个问题
本帖最后由 kvkv97 于 2013-12-20 16:49 编辑
1,游戏测试和开始游戏有什么不同?好象都一样,有不同的吗?
2,sprintf("Data/Map%03d.rxdata", @map_id),我在游戏脚本中发现的,这个Data/Map%03d.rxdata跟数据库存的数据文件名不一样,不知道是什么意思?整体的意思是什么?
3,Actors.rxdata 文件是什么文件?为什么不能打开?不能编辑?
4, RPGXP 的数据 ID 是从 1 号开始的,为了使数据 ID 和数组的附加码一致,所以数组的第一个(0 号)单元为 nil。这句话可以解释下吗?
5,class Scene_Title
def main
# 战斗测试的情况下
if $BTEST 这个的意思是战斗测试吧,是看不到的全局变量?
battle_test
return return是什么意思的?
end
6,我在游戏中的脚本有时候会看value,意思是价格,不知道是什么用的?
作者:
你最珍贵
时间:
2013-12-20 18:19
2.地图文件装载后、设置到 @map
3.Actors.rxdata是保存角色数据的文件
5.$BTEST是内置的全局变量吧,return貌似是返回的意思
作者:
fux2
时间:
2013-12-20 20:58
sprintf格式化字符串,问这个不是典型的没看F1咩。
作者:
RyanBern
时间:
2013-12-22 16:23
解释一下楼主提出的几个问题。
1.游戏测试和执行游戏的区别4L说了一半,按照CTRL可以穿墙,而且另外一个重要的功能就是在测试下,按F9可以进入调试场景Scene_Debug,在这里可以直接修改各种开关的状态和变量的值,方便各种开关和变量的监控。
2.sprintf是一个表达式,如果你学过C语言的话,这方面应该是小Case,如果没学过的话,请参考F1,看看能不能理解。我就解释你提出这个例子,sprintf("Data/Map%03d.rxdata", @map_id),这个里面的%03d是格式转换,后面@map_id是一个整数类型的变量,在实际操作过程中,sprintf把@map_id的值变成%03d的格式输出出来,%03d是什么格式呢?它是一种整数格式,强制输出位数为3位,如果整数不到3位则再前面补0,如果整数超过三位则只取后3位。假设@map_id是1,那么经过转换就是001,然后用001替换%03d,整个sprintf就返回的是"Data/Map001.rxdata",就变成了数据库地图文件的文件名。如果看过F1还不明白,直接问我也可以。
3.4L已经说明
4.这是为了给不习惯编程人“设计”出来的机制,在我们平常认知中,编号是从1开始的,但是在Ruby中数组下标是从0开始,如果a是一个数组,那么a[0]才是第一个元素。但是,我们在设置数据库的时候,是从ID为1的数据开始设置,如果把他们存储在数组中,要求数组下标和数据ID一致,那么就不得不在数组0号单元上放置一个元素占据位置。而在这里,Ruby选择了nil来占据这个位置。
5.$BTEST是一个看不到的全局变量,如果按照这个模式测试程序,那么游戏会直接进入战斗场景。这就是为什么你能进行“战斗测试”的重要原因。至于return是为了解除main方法的处理。
6.value不是价值,而是“值”的意思。这个词出现在Interpreter脚本里面的频率非常高。至于它表示什么意思,这就说不准了,因为它只是一个符号而已。通常表示的还要看具体的脚本。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1