Shadow 发表于 2004-7-28 22:57:33

制作脚印消失的方法![需要新建议]

如果以下有什么不明的地方,请参照
http://bbs.rpgchina.com/dispbbs.asp?boardID=5&ID=2339&page=2

方法有如下几种:

  1. 利用数据的存储方法来实现"多个脚印事件到时消失变量"的压缩
    在rm中,每个变量均可以存放一个7位的10进制数,最大为9999999
    转换为其他进制数后的结果是:
     2进制:100110001001011001111111
     3进制:200211001102100
     4进制:212021121333
     5进制:10024444444
     6进制:554200143
     7进制:150666342
     8进制:46113177
     9进制:20731370
     10进制:9999999
   由于想要存放同类的数据,所以每位的最大值应该相等
   因此实际可用长度为当前长度-1,因此长度为:
     2进制(23位):11111111111111111111111
     3进制(14位):22222222222222
     4进制(11位):33333333333
     5进制(10位):4444444444
     6进制(8位):55555555
     7进制(8位):66666666
     8进制(7位):7777777
     9进制(7位):8888888
     10进制(7位):9999999
   由于2进制的0、1特性,所以很适合做成开关,但rm自带5000个开关,个人感觉没必要
   而3、4进制最大可存数为2、3,作为脚印的存在时间来说太短了,
   而6、7、8、9、10进制所能存储的位数太少,虽然时间充裕多了。

   所以综合来看,5进制用来存放时间还是比较不错的。

   要想运用5进制存放时间,有以下两种方法
    1, 把5进制10位数不同变化转变为10进制9位数并用条件来分开判断,并实现结果
     
      但由于10位最高数为4的5进制数的各位不同变化转化为10进制就有1048576种
      不同的数,就算是其他进制,也几乎是不可能的……

      所以,要想运用此种方法,就不能将位数全部用上,但也突出不了压缩的效果了

    2, 用rm自带的运算法则来取出自己想用的数,rm有加、减、乘、除、余5种运算法则

      先判断当前5进制数是否大于10、100、1000、10000....来判断该数的位数

      再用除法除去自己想除的10的倍数,再取10的倍数的余数(倍数因需要而定)
      就能得到响应的位的数,再对该数进行加减。

      但不幸的是,rm没有直接取直接用的功能,它必须对一个变量除以或取余一个数然
      后存入第1个变量中,如果你需要该5进制的10个位的数就必须要有10个变量
      这样反而比直接用变量来存时间常数要用到的变量还多……结果当然是NO!

      由于前面的方法都不实用,故又想到一新方法,但……

  2. 因为定期并列处理是个循环,所以每当判断前次移动的坐标与今次移动的坐标不同
    便给一个新变量+1(以下称该变量为变量A)

    因为它的无限循环,所以如果长时间不移动主角,变量A的值就会越来越大,
    
    判断该值的大小,根据实际情况来设定
    
    当该值大于一个常数时,逻辑理解为主角没有持续走动,停了下来
    所以再下次移动的时候在原主角停留地处留下一个"主角曾经停留过的标记"
    这个标记就是一个区别于其他一直行走的脚印图的事件图(特征为:有一个双脚直立效果)

    当该值小于一个常数时,逻辑理解为主角持续走动.按正常处理.

    而脚印的消失,是由于第1个脚印消失后,其余脚印才开始逐个消失
    所以,只要判断哪个脚印是第1次移动过的脚印即可实现消失功能.
    而什么是第1次移动呢?便是由站立不动的状态开始向行动状态转变的那一次移动.
    而最后一次行动,就是指变量A的值再次大于一个常数时,最后调用过的脚印事件
    所以,当变量A内值大于一常数时,便是"脚印事件到时消失变量"的倒记时开始,当该
    变量倒记时为0时,呼叫当前事件第2页:变更事件图为消失图,然后调用(当前事件号+1)
    的事件的第2页,然后该事件又调用下一个事件,直到该事件是最后一次调用的事件.

    由此便能实现脚印的消失,但有一个很大的隐患(未经证实)
    便是,我不确定定期并列处理重复执行的速率是多少.
    按理来说应该和cpu挂钩,也就是cpu越快,执行速度就越快.那么事件A累加的频率就越快
    所以有可能出现,一直出现行动状态脚印图片的脚印移动系统
    或一直出现停留状态脚印图片的脚印移动系统.

    需要新的建议!如有赐教者!不胜感激!


    希望rmxp有改善……





[此贴子已经被作者于2004-7-28 23:10:37编辑过]

Shadow 发表于 2004-7-29 11:16:13

沉下去了!! ~o~

reko_ff8 发表于 2004-7-29 14:44:25

帮你顶一下下虽然不懂的说

beyondlwm 发表于 2004-7-30 14:03:49

看了半天……没看懂—……

Shadow 发表于 2004-7-30 14:30:17

我是在接我原先那个帖子说啦

无奈的天情 发表于 2004-8-1 08:52:40

看不明白呀`~~

[此贴子已经被作者于2004-8-1 11:48:03编辑过]

PEED 发表于 2004-8-1 08:55:24

以下是引用无奈的天情在2004-8-1 8:52:40的发言:

.................................


严禁灌水啊,如果没看懂就说没看懂啊

焰都 发表于 2004-8-1 14:14:35

制作脚印消失的方法![需要新建议]

没办法了~楼主不要怪我,实在是真的没人回答你都是在水啊
页: [1]
查看完整版本: 制作脚印消失的方法![需要新建议]