《斗魂》模块原理(一)减法模块
2dfm吧
全部回复
仅看楼主
level 12
厉风 楼主
所谓减法模块,核心就是取相反数模块,即给定一个 变量A,通过该模块对这个变量进行操作后,获得A的原有取值的相反数值,并把新数值重新寄存给A
而如果我们需要计算B-A,那么实际上就是先对A调用取相反数的模块,之后直接计算B+A即可
相反数模块原理:
首先这个模块需要一个操作变量(例如A)和中间变量(例如B)
操作变量就是指:模块读取该变量的数值并进行转换,最后把转换结果重新存储给该变量 的那个变量
中间变量指:模块中间计算过程中,临时存储数据用的变量
相反数模块可以用来对于一个特定操作变量A转换其数值为相反数,如果你想要将C的数值转换为相反数,只需要:
把C的数值转存给A
调用相反数模块对A进行转换
将新的A值转存给C
现在来说说相反数模块的具体计算步骤:
第一步:将中间变量B清零,即设置B=0,这是为了避免上一次使用本模块遗留非零B值导致本次计算错误
第二步:[0级判断]A是否小于0?
否:跳转到[1级判断-甲]
是:跳转到[1级判断-乙]
第三步:[1级判断-甲]A是否大于30000?
否:跳转到[2级判断-甲]
是:跳转到结束
第四步:[1级判断-乙]A是否小于-30000?
否:跳转到[2级判断-乙]
是:跳转到结束
第五步:[2级判断-甲]A是否小于10000?
否:A-10000且B-10000跳转回[2级判断-甲]
是:跳转到[3级判断-甲]
第六步:[2级判断-乙]A是否大于-10000?
否:A+10000且B+10000跳转回[2级判断-乙]
是:跳转到[3级判断-乙]
第七步:[3级判断-甲]A是否小于1000?
否:A-1000且B-1000跳转回[3级判断-甲]
是:跳转到[4级判断-甲]
第八步:[3级判断-乙]A是否大于-1000?
否:A+1000且B+1000跳转回[3级判断-乙]
是:跳转到[4级判断-乙]
第九步:[4级判断-甲]A是否小于100?
否:A-100且B-100跳转回[4级判断-甲]
是:跳转到[5级判断-甲]
第十步:[4级判断-乙]A是否大于-100?
否:A+100且B+100跳转回[4级判断-乙]
是:跳转到[5级判断-乙]
第十一步:[5级判断-甲]A是否小于10?
否:A-10且B-10跳转回[5级判断-甲]
是:跳转到[6级判断-甲]
第十二步:[5级判断-乙]A是否大于-10?
否:A+10且B+10跳转回[5级判断-乙]
是:跳转到[6级判断-乙]
第十三步:[6级判断-甲]A是否小于1?
否:A-1且B-1跳转回[6级判断-甲]
是:把B值寄存给A,跳至结束
第十四步:[6级判断-乙]A是否大于-1?
否:A+1且B+1跳转回[6级判断-乙]
是:把B值寄存给A,跳至结束
第十五步:结束

2012年02月04日 18点02分 1
level 12
厉风 楼主
本模块对大于30000或者小于-30000的数值不作任何处理,因为2dfm中任何变量都不允许有这种取值
对于正数,将取得其相反数为负数
对于负数,将取得其相反数为正数
对于0,其相反数最后还是0
2012年02月04日 18点02分 2
level 9
额...请问减法模块是用在什么地方的...
思路还停留在没有此类功能的阶段
不知道这些计算模块的作用- -...
2012年02月05日 00点02分 3
level 11
在没使用说明以前不会使用(因为没弄懂
2012年02月05日 02点02分 4
level 12
厉风 楼主
所谓“模块”实际上是一个招式项目,将来被其他的招式项目进行[调]用
这个招式项目里没有任何[图]脚本,纯粹用来进行一些计算或者赋值
例如我们有一个项目{相反数模块},这个招式项目里的所有脚本步骤就是[变]组成的,各种赋值,数值计算,数值条件判断,按照1楼的原理组成一个判断和计算序列
在使用时,例如我们角色发射的一个飞行道具想要判断它和角色之间的距离,那么在这个道具中,我们设置:
[变1:将本道具x坐标代给角色变量K]
[变2:将本道具的上级x坐标代给角色变量A]
[调1:调用{角色变量A相反数模块}] 这一步骤可以将A的数值转换为相反数存回给A
[变3:对角色变量K加上角色变量A] 这就等于K+(取过相反数的A),即K-A,并把K-A结果存给K
[变4:将角色变量K的值代给角色变量A] 把K的数值(即之前K-A的差)存给A是为了下一步调用取绝对值的模块
[调2:调用{角色变量A取绝对值模块}] 这个步骤将A取绝对值,负数转换为正数
[变5:将角色变量A的值代给角色变量C,这里角色变量C代表道具和角色距离] 把上一步转换后的距离值存给 角色变量C 以供后续专门判断C的条件脚本使用,就不会影响以后我们调用模块(因为调用的模块都是对A进行数值操作的)

2012年02月05日 18点02分 5
level 12
厉风 楼主
《斗魂》中将提供一系列类似的“模块”招式项目,分别实现2dfm没有直接提供的一些功能
而使用者所需要做的就是按照模块说明书对模块进行[调]用
2012年02月05日 20点02分 6
level 12
厉风 楼主
《斗魂》无界版的模块项目截图
跳or调模块:既可以直接被[调]用,又能用一个跳转标志变量来设置特定跳转位置来使用,这样可以在形成更复杂功能后被[调]用,例如“常调用模块”内部就通过跳转的方式借用了本类模块的基础功能
常调用模块:通常直接被[调]用,但对高级制作者来说,也能够人为添加跳转标志作为上一类模块使用!
最上方的19,20项目,是1~20号项目,构成“脚本集成区”
所有模块开头的[跳]都跳转到这个“脚本集成区”,通过一系列脚本步骤后再跳转回模块,以便避免使用者不小心修改模块脚本破坏功能
也就是说,每个模块的实际工作脚本都不在模块项目里面,而是许多模块的脚本混合集成在这个“脚本集成区”里面(主要也是为了节约项目,合理利用每个项目的255个步骤)
每个模块项目内的脚本,其实是可供使用者修改的部分(例如参数),以及这个模块的一个使用样板(可以用来测试模块是否正常工作)
2012年02月05日 20点02分 7
1