2DFM中的变量怎么用啊?
2dfm吧
全部回复
仅看楼主
level 10
桑二鸽 楼主
这个变量的功能我一直都不能理解,不知道通过这个变量可以做些什么事,也不知道什么时候该用变量,哪位大侠可以发一下详细的教程啊?结合实例具体的说明一下啊?
2011年06月09日 04点06分 1
level 9
变量的使用教程
第一部分 变量的意义
变量是做什么用的?
2dfm中,计算机能自动识别很多东西,比如人物坐标,血量气量,图号,招式项目号,招式步骤号等等。
但是,如果我们制作一个会多种变身的人物,怎么让计算机知道它该处于第几种变身状态呢?
再比如,我要制作一个随着蓄力时间越长,杀伤力越高的飞镖,怎么让计算机知道它蓄力了多久呢?
。。。
显然,2dfm中没有提供现成的功能来直接制作这些。而我们发现,这些功能都有个共同特点:
它们都需要一个特殊的数值标志来供计算机识别。
比如说多种变身的人物需要一个数值标志告诉计算机,它应该处于第几种变身状态;蓄力飞镖需要一个数值标志来告诉计算机它蓄力了多久。
这种数值标志,就是存储在变量里的。
可以说,变量就像是是一个盒子,里面装着数量作为识别标志,就像是计算机的联络暗号一样,根据不同的暗号,计算机来实施不同的行动。
所以,变量有三个基本功能:
1---赋值,就是给变量设置一个数值,相当于在盒子里直接放一个暗号。
2---计算,通过简单的加减来改变变量的数值,相当于我们用简单的数学方法间接改变暗号。
这两种功能都是在盒子里放东西或者偷偷换掉东西。
3---对变量的数值进行判断,这也就是查看盒子里到底有什么,然后根据暗号来实施对应行动。

2011年06月09日 14点06分 5
level 9
第二部分 变量使用的基本思路
以多重变身的人物来说,要实现变身,首先我们需要把每一种变身状态的动画都做出来。
这也就等于是给计算机安排了好几种显示方案,每一种变身对应一种显示方案。
而显示一种变身状态的动画,可以看作是计算机的一种行动方案。
那么,我们需要给每一种变身状态的动画,设定一个数值标志,相当于是一个告诉计算机应该执行这个方案的暗号。
例如,我们的人物有3种变身(一种本体,两种变体,比如变形金刚的机器人形态,拟态,组合金刚部件形态)。
我们需要制作这三种状态互相转变的招式动画,有了这些动画,才能过渡变身。
6种 {变身过渡} 动画分别是:
1--拟态=〉机器人形态 这个动画中设置变量A值=1
2--组合金刚部件=〉机器人形态 这个动画中设置变量A值=1
3--机器人形态=〉拟态 这个动画中设置变量A值=2
4--组合金刚部件=〉拟态 这个动画中设置变量A值=2
5--机器人形态=〉组合金刚部件 这个动画中设置变量A值=3
6--拟态=〉组合金刚部件 这个动画中设置变量A值=3
目标形态相同时,应该有相同的数值标志,因为这些标志代表这个目标形态。所以,机器人形态的标志是1,拟态的形态的标志是2,组合金刚部件的标志是3
我们把这些标志都放在同一个变量A中,是为了将来计算机能统一检测A。如果你放在不同的盒子里,计算机就得去翻看别的盒子,而且可能会和别的功能冲突(不同功能用的变量应该区别开,以免互相翻错盒子拿错暗号)。
上面的设置就是用到变量的“赋值”功能,直接在变量盒子里放东西。
只有暗号还不行,得让计算机能识别暗号并执行对应的方案。
这就要在人物每个 非{变身过渡} 招式的招式开头,添加一个查看变量A数值的功能(打开盒子看看暗号是什么)。
看完之后,还要设置让计算机根据不同数值,跳转去播放对应的变身动画。
比如说,计算机翻开变量A盒子,看到里面的暗号是1,于是它应该跳转去播放机器人形态的动画。如果看到里面的暗号是2,它应该跳转去播放拟态的动画。
我们说,一个人物有好多招式,既然它有3种变身,那么它的每个招式都应该事先做好3种变身下的动画,而我们要在每个招式开头添加翻看变量盒子里是什么的功能,来跳转到对应的动画去。
在游戏中,玩家输入指令,使出了 机器人形态=〉拟态 的那个{变身过渡}招式,这个时候变量A数值就被设定成2了,在玩家使出其他{变身过渡}招式从而再次变身之前,变量A数值一直是2。
那么,由于我们在人物的每一个招式的开头都设置了查看变量数值的功能,所以每个招式播放时,都会先检查变量A,发现它数值是2,于是跳转到这个招式的“拟态”状态的动画去。
因此,只要变量A一直是2,那么人物的所有招式的动作都表现为拟态的,比如变成大卡车前进后退,跳跃的拟态动画是卡车原地不动等。
当我们使出 拟态=〉机器人形态 这个{变身过渡}招式时,变量A的数值就被修改成1,这之后只要不再次变身,A就一直是1,那么计算机播放角色每个招式的动画时,都先检查A的数值,发现是1,于是自动跳转去播放机器人形态的动画,于是人物就处在机器人形态前进后退,下蹲和跳跃了。

2011年06月09日 15点06分 6
level 9
以随蓄力时间长短改变杀伤力的飞镖来说,我们需要制作一个看不见的物体来充当计时器。
当人物使出预备发射的蓄力招式时,这个计时器就自动出现(用[物]),并且在那里偷偷计时,这个计时器是一个看不见的动画,完全是由[图][图][图][图][图][图][图][图][图]组成的,其中每个[图]都引用一个透明不可见图片。我们设定每张图片的播放时间都是一样的,比如 10 单位的时间。那么我们就知道,从第一个[图]开始,每播放完一个[图],经过的时间是10。播放完4个[图]的时候,蓄力时间就是10 x 4=40。
如果蓄力一直继续(也就是人物没有使用任何停止蓄力的招式),那么蓄力时间就是随着计时器的动画播放一直累加的。
但是怎么让计算机知道经过了40这么长的时间呢?
我们可以在每个[图]之前添加一个设置变量的功能,也就是赋值功能,给这个变量设置一个数值。
比如说,我们这样写:[变30]表示给一个变量B设置数值30
那么我们可以对刚才的一组[图][图][图][图][图][图][图]修改为:
[变0][图][变10][图][变20][图][变30][图][变40][图][变50][图][变60][图][变70][图]
在播放到第4个[图](还没播完)的时候,这个[图]之前的[变30]把变量B的数值设置为30,表示蓄力时间是30。
那么,我们只要在发射飞镖的招式(这个招式一出,自动关闭看不见的那个蓄力计时器)开头添加变量数值的检查功能,由于发射飞镖的招式关闭了蓄力计时器,计时器播放到哪一个[图],就表明当前变量B的数值是最后播放的那个[图]之前的[变]所设置的数值,也就是之前经过的蓄力时间。
那么,我们设置让计算机判断在蓄力时间小于30时(也就是变量B小于30),发射出一个小的飞镖,杀伤力弱。
我们设置让计算机判断在蓄力时间大于29但小于60时(也就是变量B大于29且小于60),发射出一个中等大的飞镖,杀伤力中等。
我们设置让计算机判断在蓄力时间大于59时(也就是变量B大于59),发射出一个大的飞镖,杀伤力强。
这就实现了按蓄力时间长短发射不同杀伤力的飞镖。

2011年06月09日 15点06分 7
level 9
第三部分 具体的使用
首先你应该知道,[变]这个方格都有哪些功能,在编辑界面上怎样设置。
默认的[变]:
它分为3部分:
-------------------------------------------
变量设置,设置你要使用哪一个变量
--------------------------------------------
计算数值,对变量设置数值或者通过计算修改数值
---------------------------------------------
条件分歧,判断变量数值,根据数值条件跳转执行其他招式步骤

2011年06月09日 15点06分 8
level 9
选择变量:
单击绿色区域可以选择列表中提供的48个变量中你想要用的那一个,2dfm提供的可用变量只有这48个[拍砖]实在是太少了(吐槽就不在这里进行了)
同样是变量A,请注意,任务变量A、角色变量A、系统变量A这三者是完全不同的,不要混用。

2011年06月09日 15点06分 9
level 9
计算数值:
选择没有数值计算,就等于没有激活计算数值的功能。
一旦你选择了“代入”,这就是给变量设置一个数值(默认设置是0,你可以用鼠标修改数字,只有勾选“代入”或“相加”时,数值框和“使用变量”前面的小方格才能激活),比如我给这个变量设置数值为正数10123,你还可以设置负数值。
所谓代入,就是把数值代入上面我们选的那个变量。
我们勾选“使用变量”:数值框变成无效,此时可以选择列表中的一个变量。
例如我选择“时间”:这就表示把当前游戏倒数计时器的时间数值代入给任务变量A
同样,如果我选择系统变量J,这就表示我把系统变量J的数值复制一份代入任务变量A。
代入 这个功能,就是直接修改数值。你在
部分选择了哪个变量,那么就是修改这个变量的数值。
例如下面的这个例子里,无论任务变量A之前是什么数值,在这里都把它修改成和系统变量J一样的数值。但要记住,这里是对任务变量A作修改,没有修改系统变量J。

2011年06月09日 16点06分 10
level 9
相加 的意思是在原有基础上加上一定数量。比如下图表示在任务变量A原有基础上增加数值100。若任务变量A原来数值是200,经过这个相加之后,它的数值就变成300
相加一个 -100,等于从A中减去100:
下图表示在A的原有数值基础上,加上B的数值,结果生成的是A的新数值,没有对B进行修改,只是借用B的数值作计算。
相当于A+B的结果存储给A

2011年06月09日 16点06分 11
level 9
条件分歧部分:选择没有条件分歧,就是不去检查变量数值。
但你选择“相同的话 大于时 小于时”就会激活 数值框 和下面的“跳转目标框”:
但这样还不是完整的设置,而且会导致游戏中出现故障,因为你没有分配一个跳转目标,也就是说,你没告诉计算机,当任务变量A数值和 -100 相等时,计算机应该跳转执行什么动作。
所以,下面的设置才是合理的:
上图表示:检查任务变量A的数值,如果数值刚好等于-100,就跳转到“升官到团长4”那个项目的第0步骤(项目名称所在步骤)。
这个图来自一个RPG游戏的脚本[吐舌]2dfm可以做动作RPG,你不需要怀疑。

2011年06月09日 16点06分 12
level 9
那么我们要问,如果任务变量A的数值不是 -100,那么接下来会如何呢?
实际上,如果变量数值不满足条件,就顺序执行这个[变]后面的一个方格。
例如:当前[变]所在的招式项目“升官到大臣7”中,当前的[变]之后是[招],如果当前[变]检测的条件不成立,那么就执行[招]。但如果条件成立,就去执行“升官到团长4”

2011年06月09日 16点06分 13
level 9
这个设置表示 任务变量A 减去20后,判断 任务变量A 剩下的数值是否大于 -100,如果是,就跳转执行“升官到团长4”,否则就执行当前[变]之后的方格脚本。
而默认的这个设置表示不对任务变量A作任何的计算或者条件判断,这个方格等于什么都没执行,但可以作为占位使用,其他的脚本可以跳转到它这里来。

2011年06月09日 16点06分 14
level 9
第四部分预告:变量分歧制作变身和蓄力飞镖的具体情况
2011年06月09日 16点06分 15
level 10
桑二鸽 楼主
怎么不继续写了啊?真的获益良多啊[Yeah]
2011年06月10日 11点06分 16
level 4
支持。。。。~~
2011年06月13日 13点06分 17
level 10
桑二鸽 楼主
等待更新啊!看了很多遍了,每一遍都有新的收获!
2011年06月27日 17点06分 18
level 11
始于一问,却是教程式的回答,
放在“有问必答”区,有些误导,特此挖坟重放“教程区”。
深夜间,[扯肉]一管锹,一管锹,一管锹......
2011年12月13日 15点12分 19
level 11
当吧主还一天到晚挖坟- - 射个精就好了么
2011年12月14日 10点12分 20
level 11
哈,劳动光荣我光荣,我和劳动最光荣。
其实,是刚看完恐怖片,顺便出来吓吓人。[鬼脸]
2011年12月14日 12点12分 21
level 11
= -
2011年12月15日 11点12分 22
level 11
为什么吧主还不来更新教程啊[揉脸]
2011年12月24日 06点12分 23
1 2 尾页