设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索

模拟真实的时间流逝脚本

查看数: 3063 | 评论数: 9 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2013-8-30 18:58

正文摘要:

本帖最后由 余烬之中 于 2013-8-31 08:56 编辑 想了想还是加上这样一句: 以下很多废话,各位看官大可直接看向用特大号字体标示的正文部分!伸手党退散,这里没有你们想要的,只有问题和问题。 最近,想在游戏中 ...

回复

sszny 发表于 2013-8-31 10:01:18
好棒的系统 、支持
余烬之中 发表于 2013-8-31 08:55:53
好吧,目前的问题已经解决了,一个是在楼上的各位大大的帮助下完成的,另一个果然是我的算法问题
睡了一觉一下子顿悟了
更正后的:
  1.   def datetime
  2.     spt = $game_system.playtime
  3.     svtm = spt * MoChro::VTSpe
  4.     $game_variables[MoVTime::VTYV] = svtm / (MoChro::VTHourM * MoChro::VTDayH * MoChro::VTMonthD * MoChro::VTYearM)
  5.     $game_variables[MoVTime::VTMV] = (svtm / (MoChro::VTHourM * MoChro::VTDayH * MoChro::VTMonthD)) % MoChro::VTYearM
  6.     $game_variables[MoVTime::VTDV] = (svtm / (MoChro::VTHourM * MoChro::VTDayH)) % MoChro::VTMonthD
  7.     $game_variables[MoVTime::VTHV] = (svtm / MoChro::VTHourM) % MoChro::VTDayH
  8.     $game_variables[MoVTime::VTIV] = svtm % MoChro::VTHourM
  9.     dt1 = $game_variables[MoVTime::VTYV].to_s + "年" + $game_variables[MoVTime::VTMV].to_s + "月" + $game_variables[MoVTime::VTDV].to_s + "日"
  10.     dt2 = $game_variables[MoVTime::VTHV].to_s + ":" + $game_variables[MoVTime::VTIV].to_s
  11.     dt = dt1 + "@" + dt2
  12.     return dt
  13.   end
复制代码
虽然这时候我发现有点不符合我的设计初衷……但是细节已经无关紧要了,感谢楼上的各位!(那啥,我就不@了)
tseyik 发表于 2013-8-30 22:33:59
本帖最后由 tseyik 于 2013-8-30 22:37 编辑

暦システム
http://blueredzone.com/script/vxace/vxace_koyomisystem.html

点评

十分感谢 拿去参考参考(日文盲表示划词翻译真是个好东西)  发表于 2013-8-31 08:17
无脑之人 发表于 2013-8-30 20:26:29
建议阁下看一下刚才给的参考手册-内部类-Time部分,它是基本自动化的

点评

@.@看晕了怎么办 现在只知道可以尝试利用Time.to_a 或Time.tv_sec?我想我还是先想办法用变量吧  发表于 2013-8-30 20:51
余烬之中 发表于 2013-8-30 20:08:28
876加几 发表于 2013-8-30 19:41
Bug:360月?360日?这是不可能的事情。
改一下Max就解决了360月/日的问题。
抱歉,我看不到小数点,请圈出 ...

我用数组把它们分开了 像这样 但是……
  1.   def datetime
  2.     st = $game_system.playtime_s
  3.     tempM = [0,0,0,0]
  4.     temp3 = [0,0,0,0,0]
  5.     temp2 = [0,0,0]
  6.     dt = ""
  7.     st2 = 0
  8.     temp1 = st.split(":")
  9.     for i in 0..2
  10.       temp2[i] = (temp1[i].to_i) * (60 ^ (2-i))
  11.     end
  12.     st2 = temp2[0] + temp2[1] + temp2[2]
  13.     tempM[0] = MoChro::VTYearM * MoChro::VTMonthD
  14.     tempM[0] = tempM[0] * MoChro::VTDayH * MoChro::VTHourM
  15.     temp3[0] = (st2 * MoChro::VTSpe) % tempM[0]
  16.     st2 = st2 - temp3[0] * tempM[0]
  17.     dt = temp3[0].to_s + "年"
  18.     tempM[1] = MoChro::VTMonthD * MoChro::VTDayH * MoChro::VTHourM
  19.     temp3[1] = (st2 * MoChro::VTSpe) % tempM[1]
  20.     st2 = st2 - temp3[1] * tempM[1]
  21.     dt = dt + temp3[1].to_s + "月"
  22.     tempM[2] = MoChro::VTDayH * MoChro::VTHourM
  23.     temp3[2] = (st2 * MoChro::VTSpe) % tempM[2]
  24.     st2 = st2 - temp3[2] * tempM[2]
  25.     dt = dt + temp3[2].to_s + "日" + "@"
  26.     #这个@很重要
  27.     tempM[3] = MoChro::VTHourM
  28.     temp3[3] = (st2 * MoChro::VTSpe) % tempM[3]
  29.     st2 = st2 - temp3[3] * tempM[3]
  30.     dt = dt + temp3[3].to_s + ":"
  31.     temp3[4] = (st2 * MoChro::VTSpe).to_i
  32.     dt = dt + temp3[4].to_s
  33.     return dt
  34.   end
复制代码
一开始还是一样的……到了一定程度以后就不一样了……
但是……从头到尾增量很大,几千年的加……
很遗憾不过……没图……

点评

@876加几 我去用变量吧(我根本不知道怎么用变量啊……)  发表于 2013-8-30 20:22
@876加几 不明白@.@  发表于 2013-8-30 20:20
别忘了搭上一座桥!  发表于 2013-8-30 20:12
余烬之中 发表于 2013-8-30 19:44:14
876加几 发表于 2013-8-30 19:41
Bug:360月?360日?这是不可能的事情。
改一下Max就解决了360月/日的问题。

问题不是这么点……你没发现吗,年月日一直同步……一直同步啊亲!60.60.60 120.120.120 180.180.180 我找不到原因啊{:2_270:}{:2_277:}{:2_279:}{:2_254:}{:2_263:}

点评

分开拿变量,原因是它们各拿一个值来写了。  发表于 2013-8-30 19:47
876加几 发表于 2013-8-30 19:41:04
本帖最后由 876加几 于 2013-8-30 19:48 编辑

Bug:360月?360日?这是不可能的事情。
改一下Max就解决了360月/日的问题。
抱歉,我看不到小数点,请圈出来。
试试分别用一个变量来(例如30为年、31为月、32为日、33为小时、34为分钟)($game_variables[30]、$game_variables[31]、$game_variables[32]、$game_variables[33]、$game_variables[34])来调用,变量不会出现小数点的。
余烬之中 发表于 2013-8-30 19:24:27
无脑之人 发表于 2013-8-30 19:19
吓尿了=-=
将对象转为整数型是to_i方法 例如: a = "100" ; p a.to_i #=> 100
定义数组实际上方便简单 a=[ ...

ruby的数组不限制类型吗(感觉像默认为变体),我一直是VB的思路,先定义后使用……ruby找不到显示定义 反而呵呵了
不过 to_i 方法还是看不懂@.@那个p是什么意思……本人完全吃VB和C的老底,第一反应是指针……

点评

@无脑之人 这样啊...也就是说p不是必要的吧……谢谢(90°鞠躬)!  发表于 2013-8-30 19:34
Ruby不需要定义,直接使用即可  发表于 2013-8-30 19:29
p……在RM里面是弹窗,意思就是说那个表达式的返回值是100,也就是说字符串加一个.to_i就变成了对应整数,浮点数加上.to_i 就变成了整数【舍掉小数  发表于 2013-8-30 19:28
无脑之人 发表于 2013-8-30 19:19:36
吓尿了=-=
将对象转为整数型是to_i方法 例如: a = "100" ; p a.to_i #=> 100
定义数组实际上方便简单 a=[] 这样a就成了一个不限制成员个数的数组 当然也可以直接定义值 如a=[1,"2",0.3,"啦啦啦",[]......],而且数组不限制类型
然后在下依然看不懂不是自己写的东西orz……
建议阁下翻一翻f1以及http://www.kuqin.com/rubycndocument/man/index.html
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-10-1 15:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表